Python 导入练习:模块、别名与标准库
导入只是很小的语法,却能带来很大的收益:你可以直接使用经过测试的代码,而不是重新实现每个工具。关键是让每个名字的来源清楚可见。
导入模块,再使用命名空间
import math 会加载模块,并通过 math 对象暴露其中的名字。给函数加上模块名前缀,读者就知道它来自哪里,也不容易和自己的变量重名。
import math
print(math.sqrt(81))
print(math.pi)模块命名空间
把一个名字带入当前作用域
from statistics import mean 让 mean 可以直接使用。名字含义明确时,这种写法很简洁。可以用逗号导入多个名字,但列表要短到一眼能扫完。
from statistics import mean, median
scores = [7, 9, 10]
print(mean(scores))
print(median(scores))有选择的 from-import
别名要提升可读性
别名不会复制或重命名磁盘上的模块,只是在当前文件里换一个访问名字。长模块名常用短别名,但不要用让人费解的缩写。
import random as rnd
rnd.seed(7)
print(rnd.choice(["latte", "tea", "mocha"]))一个简短别名
先探索标准库
自己写辅助函数之前,先确认标准库是否已经提供。math 负责常见数学运算,statistics 负责统计摘要,re 负责文本模式。读官方文档也是学习语言的一部分。
import math
print(math.gcd(12, 18))
print(math.factorial(5))不必自己实现的实用函数
避免通配符导入
from module import * 会隐藏名字来源,还可能悄悄覆盖你已经使用的名字。优先使用 import module,或明确列出要导入的名字。显式导入更容易搜索、测试和解释。
from math import ceil, floor
print(ceil(2.1))
print(floor(2.9))显式写法更容易追踪
你的练习清单
- 需要清楚的命名空间时,用 import module。
- 只需要少量名字时,用 from module import name。
- 别名只有在让代码更易读时才使用。
- 自己写工具函数前,先检查标准库。
常见问题
import math 和 from math import sqrt 有什么区别?
import math 会加载整个模块,调用时要写 math.sqrt。from math import sqrt 会把 sqrt 带入当前命名空间,可以直接调用 sqrt。
导入会很慢吗?
Python 会缓存已经导入的模块,后续导入通常很快。大型第三方包在首次启动时仍可能耗时。
应该使用 import * 吗?
通常不要。它会隐藏名字来源,还可能覆盖已有变量。显式导入更容易理解和维护。
练习导入
12 道题,覆盖模块、from-import、别名、math 和 statistics。
继续阅读: