第 28 课 · 阶段四 · 函数与模块

模块与包

代码多了就要拆分。这一课学习模块与包的机制、import 的四种写法、__name__ 魔术变量,以及用 pip 安装第三方库。

第 28 课阶段四 · 函数与模块难度:进阶建议时长:40 分钟关键词:import · from · __name__ · pip

🎯 学完本课你将掌握

  • 理解模块、包的概念与区别
  • 掌握 import 的多种写法
  • 理解 if __name__ == '__main__' 的作用
  • 会用 pip 安装第三方库

一、什么是模块与包

模块:一个 .py 文件就是一个模块。把相关功能放进一个文件,方便复用。

:包含 __init__.py 的文件夹,用来组织多个模块。

二、import 的四种写法

import 写法.py
1import math # 方式1:导入整个模块
2print(math.sqrt(16)) # 4.0 用 模块.函数 调用
3
4from math import sqrt # 方式2:只导入某个函数
5print(sqrt(25)) # 5.0 直接用
6
7from math import pi, sqrt # 方式3:导入多个
8from math import * # 方式4:导入全部(不推荐)
9
10import math as m # 取别名
11print(m.pi) # 3.141592...
⚠️ 注意
不推荐 from math import *,会污染命名空间、可能覆盖同名变量。

三、自己创建模块

my_math.py(先创建这个文件)
1def add(a, b):
2 return a + b
3
4def mul(a, b):
5 return a * b
6
7print("my_math 模块被导入") # 导入时这行会执行
使用自己的模块.py
1import my_math
2print(my_math.add(3, 4)) # 7
3print(my_math.mul(3, 4)) # 12

四、__name__ == '__main__'

直接运行某文件时,该文件的 __name__ 是 '__main__';被 import 时是模块名。利用这个特性,把“测试代码”保护起来。

main 保护.py
1def add(a, b):
2 return a + b
3
4if __name__ == "__main__":
5 # 只有直接运行本文件时才执行下面的测试
6 print(add(1, 2))
7 print("这是直接运行时才输出的")
✅ 要点
这是 Python 的标准写法:把可执行入口放 if __name__ == '__main__' 里,既可以直接跑,也能被别处安全导入。

五、pip 安装第三方库

  1. 1
    打开终端(Windows 用 cmd,macOS/Linux 用 terminal)。
  2. 2
    执行 pip install 库名,例如 pip install requests。
  3. 3
    Python3 环境下可能用 pip3。
  4. 4
    安装后 import 即可使用。
pip 命令
1pip install requests # 安装
2pip install numpy pandas # 一次装多个
3pip uninstall requests # 卸载
4pip list # 查看已安装
5pip show requests # 查看某个库信息

六、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
ModuleNotFoundError: No module named 'xxx'没安装该库,或名字写错,pip install 后再试。
pip 不是内部命令Python 的 Scripts 目录没加 PATH,回到第 2 课补环境变量。
import 自己写的模块失败确认两个文件在同一目录,或在运行目录下;或把目录设为包并加 __init__.py。
✍️ 小练习
创建一个 tools.py 放两个函数,在另一个文件里用两种 import 方式调用它;再用 pip 安装一个库(如 requests)并验证 import。
📌 本节小结
一个 .py 就是模块,文件夹+__init__.py 是包;import 有四种写法;__name__ == '__main__' 保护测试代码;pip install 装遍天下库。模块化是工程化的第一步。