python模块
什么是模块
为什么有模块
怎么使用模块
模块的定义
模块被引用时的执行步骤
import foo
执行foo.py- 产生foo.py的名称空间,将foo.py运行过程中产生的名字都丢到foo的名称空间中
- 在当前文件中产生的有一个名字foo,该名字指向2中产生的名称空间
- 之后的导入,都是直接引用首次导入产生的foo.py名称空间,不会重复执行代码
模块的引用
2、引用:
print(foo.x)
print(foo.get)
print(foo.change)
强调1:模块名.名字,是指名道姓地问某一个模块要名字对应的值,不会与当前名称空间中的名字发生冲突
x=1111111111111
print(x)
print(foo.x)
强调2:无论是查看还是修改操作的都是模块本身,与调用位置无关
import foo
x=3333333333
# foo.get()
foo.change()
print(x)
print(foo.x)
foo.get()
3、可以以逗号为分隔符在一行导入多个模块
建议如下所示导入多个模块
import time
import foo
import m
不建议在一行同时导入多个模块
import time,foo,m
- 导入模块的规范
- python内置模块
- 第三方模块
- 程序员自定义模块
# import time
# import sys
#
# import 第三方1
# import 第三方2
#
# import 自定义模块1
# import 自定义模块2
# import 自定义模块3
import 。。。 as 。。。
import foo as f # f=foo
f.get()
import abcdefgadfadfas
#
# abcdefgadfadfas.f1
# abcdefgadfadfas.f2
# abcdefgadfadfas.f3
import abcdefgadfadfas as mmm
mmm.f1
mmm.f2
mmm.f3
- 模块是第一类对象
import foo - 自定义模块的命名应该采用纯小写+下划线的风格
- 可以在函数内导入模块
def func():
import foo
import
from x import b
from a import b
from a import b,c,d
from a import *
循环引用
模块的查找优先级
内存(内置模块)>硬盘(按照sys.path中的文件路径查找)
sys.modules查看已经加载到内存中模块
sys.path.append(path)将模块文件夹路径添加到环境变量中