模块就是程序,模块的名称就是不含.py后缀的文件名
1)python的标准模块(python内置模块、python标准库)
2)第三方模块/库(pypi.org)
3)自定义模块
1)可维护性更强
2) 方便代码重用
像双下划线开头双下划线结尾是python里面为我们内置的
在terminal里面输入:hello.__doc__ #返回文档注释
help(hello), 可以用help(hello.add) #可以用 .的方式查看某一个特定信息
eg. 模块名称.__name__ #返回文件的名字
eg. 模块名称.__file__
如果想引入一个模块,引入之前肯定会对此模块进行测试。 此时引入的话会把测试的代码也运行一遍,这是不想要出现的,需要在测试的代码前加入判断。
if __name__ == '__main__' #加完这个代码此时再引入就不会再执行测试的代码了,为什么这里要写main呢? 如果从当前模块直接执行,可以得到它的名称是main,如果从其他模块引用这个模块,来调用它里面的方法,这时候它的名称不是main,而是这个模块的名称。
包的简介:
可以用来组织模块(可以包含其他模块的模块)
目录必须包含文件_init_.py
模块重命名问题解决
包里面可以有子包(sub)
__init__.py:
英文半角的双下划线
将一个文件夹变为一个包
导入包的本质就是执行该包下的__init__.py文件
一般为空,可以批量导入所需模块
示例:
import module #导入一个模块
import modulea,moduleb #导入多个模块
import package.modulec #导入一个包中的某个模块
导入包时注意__init__.py
语法:
from package.xx.xx import xx
需要注意绝对路径和相对路径的导入,存在相对路径导入的模块是不能直接运行的
示例代码:
from module import *
from package.xx import *
示例代码:
import module as a
import package.module as c
from package.xx.xx import xx as rename
注:
别名需要遵循Python的变量命名规范
注意*不支持指定别名