python-包和模块
一个py文件就是一个模块
包就是一个文件夹,文件夹里必须有__init__.py文件和其它模块或子包
导入包中的模块时,会自动执行这个文件
导入模块方式一:
有一个test3.py文件
class Dog: @staticmethod def jiao(): print('小狗汪汪')
下面导入模块并调用函数
import test3 #导入模块 dog = test3.Dog() dog.jiao()
注意:要跟上模块名
导入模块方式二:
from test3 import Dog #从test3模块中导入Dog类 dog = Dog() dog.jiao()
注意:不用跟模块名
用*导入
有一个模块:
__all__=['num1','num2','Dog'] #此模块被*导入时,标注哪些资源被导入 num1=111 num2=222 num3=333 class Dog: @staticmethod def jiao(): print('小狗汪汪')
导入模块时的执行过程:
模块第一次被导入时会执行三步:
1.在模块中创建模块对象
2.会执行模块中的代码;
3.将模块中所有顶级变量以属性模式绑定到模块对象中;
4.引入import后面的变量名称到当前的命名空间
后面再导入同一模块时,直接执行第4步
导入时的搜索顺序:
第一次导入时:内置模块-->sys.path
sys.path的构成:
1.当前路径
2.环境变量PYTHONPATH指定的路径
3.特定路径下的.pth文件中的文件列表
4.在python安装目录下lib库中搜索
import sys
print(sys.path) #返回搜索路径
返回值 列表
追加搜索路径:
方式一:
sys.path.append(r'.\t.py') #添加目录,本文件有效
方式二:修改环境变量PYTHONPATH-永久有效
右击电脑--->属性--->高级--->环境变量--->新建或编辑
在Pycharm中找到新建的路径:文件--->设置--->--->
--->--->--->--->找到目录
方式三: 添加pth配置文件
1.找出这个特殊路径
import site
s=site.getsitepackages() #返回特殊路径,把pth文件放在这些路径下
#['E:\\python64', 'E:\\python64\\lib\\site-packages']
print(s)
2.创建pth文件
3.在pth文件中写入搜索路径
在模块中导入模块的方法:
print(__name__) from . import t1 # .表示模块t1所在的文件夹 #往上找能找到哪个文件夹为止,由__name__返回的路径决定(只能到返回的顶级路径)
注意:只能在模块中使用
一些指令:
print(os.__file__) #返回模块所在的路径
#E:\python64\lib\os.py
dir(os) #返回包或模块中的内容
__name__ 返回模块名称
py文件是直接以脚本执行的 返回值是:__main__
如果是导入的模块,返回值是:包名.模块名
天子骄龙