• Day26--Python--包


    1. from xxxx import *
    从xxx导入所有. 如果XXX模块内部有__all__ 导入all中的内容. 如果没有__all__全部都导入
    __all__ = ["money", "chi"] # 此时如果有人导入这个模块. 并且是from xxx import *
    money = 5000
    
    def chi():
        print("人喜欢吃东西")
    
    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __str__(self): # 当执行print(对象)
            return self.name + str(self.age)+"明天换套衣服"
    
    # 此时money 和chi都可以访问,但是Person不能调用

    2. 包
      from urllib.request import urlopen # 点 前面的一定是包
      包其实就是文件夹

      from urllib import request
      request.urlopen()

    文件夹内包含了__init__.py在导入包的时候, 默认执行__init__.py
       py2中,包中必须有__init__.py,但是py3中不强制.如果自己写包一定要加__init__.py,否则不容易确定文件夹是否是一个包
    创建包:
        创建文件夹
        创建__init__.py
        使用pycharm可以直接创建python的package(包)

       查找的顺序: 内存 -> 内置 -> sys.path
    sys.path有坑: 根据你启动的脚本所在的位置确定查找包, 模块的路径
    sys.path.insert(0, "你想加入的位置") # sys.path是一个列表,可以insert和append,但不建议使用
    1. 绝对路径
    从sys.path找. 根


    2. 相对路径
    相对于当前文件所在文件夹
    . 当前
    .. 上一层
    启动脚本不能在包内, 所以一般在包外都写一个run.py
    # run
    if __name__ == '__main__':
        pass
    View Code run.py

     

  • 相关阅读:
    关于测试开发及其他——写在离职之前
    牛腩新闻发布系统——初探CSS
    牛腩新闻发布系统——后台前台整合技术
    Android Audio Focus的应用(requestAudioFocus)
    正则表达式详解
    牛腩新闻发布系统——初探JQuery,AJAX
    牛腩新闻发布系统——初探Javascript
    进入中文维基百科的方法
    *args 和**kwargs 的溯源
    mathematica9激活
  • 原文地址:https://www.cnblogs.com/surasun/p/9779638.html
Copyright © 2020-2023  润新知