概述
模块和包
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模块和包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复