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'. .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:python64libos.py

 dir(os)    #返回包或模块中的内容

__name__      返回模块名称

py文件是直接以脚本执行的    返回值是:__main__

如果是导入的模块,返回值是:包名.模块名

天子骄龙

原文地址:https://www.cnblogs.com/liming19680104/p/10871772.html