Python:模块
学习资料:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017454145014176
https://www.runoob.com/python3/python3-module.html
简介:
- 定义:Python中,一个.py文件即为一个模块(module)
- 优势:模块大大提高了代码的可维护性;可以引用编写完成的模块;相同的函数名和变量名分别放在不同模块中可以避免冲突
- 包(package)的概念:相当于一个目录来组织模块
Myprjects#顶层包名
__init__.py#每个包目录下一定存在的文件
first.py
second.py
...
也可以有多级目录:
Mytry
background
__init__.py
a.py
...
__init__.py
b.py
...
注:
first.py
就是一个名为first的模块,经过组织,其名字变成了Myprojects.first__init__.py
必须有,否则Python就把这个目录当成普通目录,而不是一个包。init.py可以是空文件也可以有代码,它的名字就是顶层包名。- 模块名不能使用中文,特殊字符,且不要和系统自带的模块名冲突,否则将无法导入系统自带的模块。可以执行
import 模块名
,若成功说明系统存在此模块。 Mytry.background
是一个模块。
import语句
import 模块名#导入模块
模块名.函数#调用模块包含的函数
- 模块只会被导入一次。
- 模块名.path自动查找模块路径的列表
- 模块名.argv是一个包含命令行参数的列表
from…import语句
from 模块名 import 函数名1,函数名2...
可以用from...import*
把一个模块的所有内容都导入到当前的命名空间。但以_
开头的名字例外。
深入模块
- 模块除了方法定义,还包括可执行的代码用来初始化这个模块,这些代码只有第一次被导入时才会执行。
- 可以通过
模块名。函数名
来访问模块内的函数。 - 可以用
from module1 import module2
将一个模块导入另一个模块。
__name__属性
使某程序块仅在该模块运行时执行。
- 每个模块都有__name__,当其值是__main__时表明该模块自身在运行,否则是被引入。
dir()函数
可以找到一个模块里定义的所有名称,并以列表的形式返回。若没有给参数,则会列出当前定义的所有名称。