首页 › 论坛 › 置顶 › Python基础 :模块与包
正在查看 1 个帖子:1-1 (共 1 个帖子)
-
作者帖子
-
2025-11-10 09:46 #27310Q QPY课程团队管理员
模块与包(import, from, main)
项目:构建一个模块化的“数学与问候工具包”,以导入和重用你自己的函数。
01. 学习目标
在本课结束时,你将能够:
-
- 理解什么是模块和包
-
- 导入内置和自定义的Python模块
-
- 有效使用from-import、别名和main
-
- 组织你的代码以实现可重用性和清晰性
02. 问题场景
随着项目的增长,你会希望将代码组织成更小的、可重用的文件。
与其将所有内容放在一个Python文件中,你将学习使用模块和包来使你的项目可扩展且整洁。
03. 第一步 – 什么是模块?
模块只是一个包含函数、类或变量的Python文件(
.py)。你可以将其导入到另一个文件中以重用其代码。
示例:使用Python内置的
math模块import math print(math.sqrt(16)) # 4.0 print(math.pi) # 3.141592...
04. 步骤2 – 不同的导入方式
根据你的使用场景,可以通过多种方式导入模块。
# 导入整个模块 import math print(math.sqrt(25)) # 导入特定函数 from math import sqrt, pi print(sqrt(25), pi) # 使用别名以方便调用 import math as m print(m.sqrt(36))
05. 第三步 – 创建您自己的模块
您可以创建自己的 Python 文件并将其作为模块重用。
calc.py
def add(a, b): return a + b def sub(a, b): return a - bmain.py
import calc print(calc.add(3, 5)) # 8 print(calc.sub(10, 7)) # 3当你导入
calc时,Python 会自动运行该文件一次,并提供对其函数的访问。
06. 第四步 – 什么是包?
包 是一个包含多个模块的文件夹。
它必须包含一个__init__.py文件才能被识别为包。my_package/ __init__.py math_ops.py string_ops.pyfrom my_package import math_ops print(math_ops.add(2, 3))包使得在大型项目中将相关模块分组变得简单。
07. 第五步 –
__name__和__main__检查每个 Python 文件可以作为以下两者之一:
- 脚本(直接运行)
- 模块(被导入到另一个文件中)
你可以使用
if __name__ == "__main__":来区分它们。# test.py def hello(): print("Hello!") if __name__ == "__main__": hello()直接执行时:
$ python test.py 你好!导入时:
import test # 不会自动打印这使您能够包含仅在直接执行时运行的测试代码或演示。
08. 第六步 – 安装外部库
您可以使用pip安装第三方库。
pip install requests然后,在你的项目中使用它:
import requests res = requests.get("https://api.github.com") print(res.status_code)
09. 第7步 – 实践示例
示例1:标准模块
import random print(random.randint(1, 6)) # 掷骰子
示例 2:自定义模块
greet.py
def say_hello(name): return f"你好,{name}!"main.py
import greet print(greet.say_hello("Sabin"))
10. 第8步 – 迷你项目:数学与问候工具包
让我们构建一个简单的包,结合数学和问候模块。
项目结构
toolkit/ __init__.py math_tools.py greet_tools.py main.pymath_tools.py
def add(a, b): return a + b def multiply(a, b): return a * bgreet_tools.py
def greet(name): return f"欢迎, {name}!"main.py
from toolkit import math_tools, greet_tools print(math_tools.add(10, 5)) print(greet_tools.greet("Sabin"))输出:
15 欢迎,Sabin!
11. 反思
您已经学习了如何:
-
- 导入内置和自定义模块
- 将多个文件组织成包
- 使用
__main__将测试代码与导入分开 - 构建您自己的数学与问候工具包以便重用代码
-
-
作者帖子
正在查看 1 个帖子:1-1 (共 1 个帖子)
- 哎呀,回复话题必需登录。