day 30
模块和库的导入
导入官方库
标准导入:导入整个库
直接使用`import`语句
# 方式1:导入整个模块
import mathprint("方式1:使用 import math")
print(f"圆周率π的值:{math.pi}")
print(f"2的平方根:{math.sqrt(2)}\n")
从库中导入特定项
当使用from语法从库中导入特定的函数或类时,这些函数或类就可以在您的代码中直接使用,不需要添加模块名作为前缀。因为在导入时没有包括模块的完整路径,前面也不能加上库名。
# 方式2:导入特定的函数或变量
from math import pi, sqrtprint("方式2:使用 from math import pi, sqrt")
print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}\n")
非标准导入:导入整个库
一般不用
如下
●这将导入`math`模块中定义的所有公开函数和变量。
●和上述from同理,直接调用`sin()`、`cos()`等,而无需`math.`前缀。
from math import *print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}")
导入自定义库/模块
模块(Module)
本质:以 `.py` 结尾的单个文件,包含Python代码(函数、类、变量等)。
作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。
包(Package)
在python里,包就是库
本质:有层次的文件目录结构(即文件夹),用于组织多个模块和子包。
核心特征:包的根目录下必须包含一个 `__init__.py` 文件(可以为空),用于标识该目录是一个包。
若编写一个计算圆面积的代码并保存为 `circle.py`,这个文件就是一个模块。
使用时通过 `import circle` 导入模块,调用其中的函数(如 `circle.calculate_area(5)`)。
# circle.py
import mathdef calculate_area(radius):return math.pi * radius ** 2
若
项目根目录/
├── circle2.py
└── utils/
├── __init__.py (必需添加,将 model 目录标记为一个可导入的包)
└── circle.py
└── model/
└── main.py
应该用python -m model.main来运行,原因:
若直接使用 python model/main.py 运行,Python 解释器会把 model 目录当作当前工作目录,这可能致使 utils 包无法被正确导入,从而引发导入错误。
而使用 python -m model.main 运行时,Python 会将当前目录(项目根目录)添加到 sys.path 的开头。 sys.path 是 Python 解释器用于查找模块的路径列表,这样一来,Python 就能从项目根目录开始查找模块,进而正确导入 utils 包中的 circle.py 文件。
@浙大疏锦行