模块是python程序架构的核心概念
- 模块
- 模块的命名遵守标识符原则(注意不要和系统模块重名)
- 每一个以.py结尾的文件都是一个模块
- 在模块内的全局变量、函数、类可以直接提供给外界使用
- 语法
import导入
import 模块名1, 模块名2
注意虽然上边的也行,但是在PEP8规范中要求在导入模块时,每个导入应该独占一行
import 模块名1
import 模块名2
- 导入之后
导入之后可以通过模块名.
来使用导入模块中的全局变量、函数。
如果模块名太长可以使用as
对代码块重新命名- 语法
import 模块名1 as 模块别名
这里需要说的是模块别名使用大驼峰命名法
- from…import导入
语法
#从 模块 导入 某一个工具
from 模块名1 import 工具名
注意import
是将模块下的工具全部导入,而from...import
则是导入指定的模块工具
并且使用时直接使用工具名就行
- 用form…import导入所有工具
只需要加一个通配符*
#从 模块 导入 所有工具
from 模块名1 import *
注意 当导入两个不同模块导入同名函数时,后导入的会将先导入的覆盖 所以这时候可以用
as
将函数重命名一下。
__name__
属性
我们知道在导入模块时,只要没有缩进的代码,都会被执行一遍。这个是极不方便的–>因为在正常开发时同一个模块我们正常要写很多的测试代码。这些代码在导入时是不希望被执行的。
因此就用到了
__name__
属性,我们知道如果在当前本模块它是返回一个固定的字符串–>__main__
,而在导入的文件中,返回的是导入文件的地址。
因此在开发时,我们经常见到下面的代码
#导入模块
#定义全局变量
#定义类
#定义函数
#在代码的最下方
def main():
# ...
pass
#根据 __name__ 判断是否执行下方代码
if __name__ == "__main__":
main()
这样在导入的时候,测试代码就不会执行了。