模块和包
1.模块
python模块(module),是一个python文件,以.py结尾,包含了python对象定义和python语句。
模块可以定义函数、类和变量,模块里也能包含可执行的代码
2.导入模块
(1)导入模块的方式
① import 模块名

② from…import…

③ from…import *

④ as定义别名

3.制作模块
在python中,每个python文件都可以作为一个模块,模块的名字就是文件的名字
即自定义模块名必须要符合标识符的命名规则
(1)定义模块

(2)测试模块
def testA(a,b):
print(a + b)
testA(1,2)

这个时候,无论是当前文件,还是其他导入了此模块的文件,在运行时都会自动执行调用
解决方法
def testA(a,b):
print(a + b)
if __name__ == '__main__':
testA(1,2)
此时只会当前文件中调用函数,其他导入的文件中不会执行
(3)调用模块
import my_module1
my_module1.testA(1,2)

注意:
当使用from…import…或from…import * 导入多个模块,且模块内有同名的功能时,当调用这个同名功能时,调用【后导入】的模块中的功能


from modu1 import my_test
from modu2 import my_test
my_test(3,2)

4.模块定位顺序
当导入一个模块时,python解析器对模块位置的搜索顺序为
(1)当前目录 (2)如果不在当前目录,python则搜索shell变量PYTHONPATH下的每个目录 (3)如果都找不到,python会查看默认路径【Unix下,默认路径一般是/usr/local/lib/python/】
模块搜索路径存储在system模块的sys.path变量中,变量中包含当前目录,PYTHONPATH和由安装过程决定的默认目录
注意:
① 自定义模块名不要和已有模块名重复,否则会导致模块功能无法正常使用
② 使用from 模块名 import 功能 导入方式时,如果功能名字重复,调用到的是最后定义或导入的模块功能
5.__all__
如果一个模块文件中有__all__变量,当使用from xxx impor *导入时,只能导入这个列表中的元素

from my_module1 import *
testA()
testB()

6.包
将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包
(1)制作包

(2)导入包
① 方法1

import mypackage.my_module1
mypackage.my_module1.info_print1()

② 方法2

用此方法时,必须在__init__.py文件中添加__all__ = [ ],控制允许导入的模块列表
最后
以上就是敏感橘子最近收集整理的关于python模块和包的全部内容,更多相关python模块和包内容请搜索靠谱客的其他文章。
发表评论 取消回复