模块
概念: 模块和java中的包概念类似
导入: 关键字 import import 模块名...
部分导入: 关键字 from from 模块名 import 函数名1,函数名2....
调用: 模块名.函数名
自定义模块:
每个Python文件都可以作为一个模块,模块名就是文件名
例如:
文件test.py,在test.py中定义了函数add
导入:import test或者 from test import add
调用:result = test.add(11,22)
测试模块:在自定义模块中添加了一些测试代码
目前问题:调用模块,测试代码也执行
理想效果:模块测试代码不执行
解决方法:加入 __name__ 变量
if __name__=='main':
测试代码
def add(a,b):
return a+b
#测试信息
if __name__=='main':
ret = add(12,22)
print('int test.py file,,,,12+22=%d'% ret)
import test
c=test.add(6,7)
print(c)
包:把很多模块组织起来
作用:有效避免模块名称冲突问题,使组织结构更加清晰
包和模块区别:__init__.py只要存在,就表明此目录应被作为一个package处理
理解:资源管理器,目录树等一样
包的导入:利用 from...import
from 顶层包.次顶层包...子包 import 函数名
from 顶层包.次顶层包 import 子包
注意:
1.目录结构中可以发现很多的 __init__.py 文件===初始化模块
2.有的__init__.py中是空白,有的却会有__all__参数。
__init__.py是空白,可以直接import到moudle的所有函数
__init__.py中定义了__all__,则import只会导入__all__部分定义的内容
__all__介绍:
__all__该变量包含执行这样的语句时应该导入的模块的名字
__all__ :一个字符串列表,列表元素就是模块名
例如: __all__ = ['module_13', 'module_12']
模块发布:暂时不整理