标准库
标准库 | 说明 |
---|---|
builtins | 内建函数 |
math | 数学库 |
random | 随机数 |
time | 时间 |
datetime | 时间和日期 |
calendar | 日历 |
hashlib | 加密算法 |
copy | 拷贝 |
functools | 常用工具 |
os | 操作系统接口 |
re | 正则 |
sys | 自身运行环境 |
multiprocessing | 多进程 |
threading | 多线程 |
json | 编码解码 json对象 |
logging | 记录日志 |
自定义模块
# 变量
# 函数
# 类
-
导入模块
import 模块名
模块名.方法
模块名.变量
模块名.类from 模块名 import 一部分(类\变量\模块)
from 模块名 import *
取到 模块内 all = [’’,’’,’’] 内限制的内容, 仅对 import * 起作用
模块内不希望被调用的部分
__name__ 表示 正在执行的名字
if __name__ == '__main__':
# 只有执行本模块时,__name__ = __main__
# 被调用时,__name__ = 模块名
pass
不同模块 同名函数
- 包 和 文件夹 的区别
- 文件夹 非py文件,放jpg txt html 等
- 包 放py文件 __init__
- 不同包内 放同名文件 不冲突
- 一个包内 可以放多个模块
project > package > models > class func 变量
-
使用包package中的模块
import package_name import models 或 import package.models import func
-
同一个包内 互相导入
import package.models import * 或 import .models import *
-
包内 __init__.py 作用
-
导入包的时候,默认执行__init__.py文件
-
包内的内容 可以通过包名调用
-
__init_.py 可以加入__all_ 暴露模块名
from package import *
-
没有的__all__的话,无法使用
-
循环导入
# file: A.py
import B
def A():
B.B()
# file: B.py
import A
def B():
A.A()
- 会报错,这是一种错误方式,架构不当
A模块调用 B模块
B模块调用 A模块
- 避免产生循环导入
- 重新架构
- 挪动import的位置