Python 中的模块和包是组织代码的重要方式。它们使代码更加模块化、可维护,并且允许开发者重用已有的代码。
模块是一个包含 Python 定义和声明的文件,文件名就是模块名,加上 .py
扩展名。
使用 import
导入整个模块
直接使用 import
语句导入整个模块,这样你就可以使用模块中的所有内容。
import math
print(math.sqrt(16)) # 使用 math 模块中的 sqrt 函数
使用 from ... import
导入特定对象
如果只需要模块中的某些函数或变量,可以使用 from ... import
语句。
from math import sqrt, pi
print(sqrt(16)) # 直接使用 sqrt 函数
print(pi) # 使用 pi 常量
使用 from ... import *
导入所有对象
这种方式会将模块中的所有对象都导入到当前命名空间中,但不推荐使用,因为可能会导致命名冲突。
from math import *
print(sqrt(16)) # 直接使用 sqrt 函数
print(pi) # 使用 pi 常量
为模块或对象指定别名
为导入的模块或对象指定别名,可以使代码更简洁。
import math as m
from math import sqrt as square_root
print(m.pi)
print(square_root(16))
Python 自带了一些标准库模块,这些模块提供了大量的功能,几乎覆盖了所有常见的编程任务。
os
模块:提供了与操作系统交互的功能,如文件和目录操作。
import os
print(os.getcwd()) # 获取当前工作目录
os.mkdir('new_directory') # 创建新目录
sys
模块:提供了与 Python 解释器相关的功能,如访问命令行参数和退出程序。
import sys
print(sys.argv) # 打印命令行参数列表
sys.exit() # 退出程序
datetime
模块:处理日期和时间的模块。
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 格式化当前日期时间
math
模块:提供了数学运算函数和常量。
import math
print(math.factorial(5)) # 计算 5 的阶乘
print(math.pi) # 圆周率常量
random
模块:生成随机数和随机选择。
import random
print(random.randint(1, 10)) # 生成 1 到 10 之间的随机整数
print(random.choice(['apple', 'banana', 'cherry'])) # 从列表中随机选择一个元素
Python 社区有大量的第三方库,这些库可以通过 pip
(Python 的包管理工具)进行安装。
使用 pip
安装
在命令行中使用 pip install
命令安装第三方库。
pip install requests
requests
库:用于发送 HTTP 请求,获取和处理网络资源。
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 打印响应状态码
print(response.json()) # 解析 JSON 响应
numpy
库:用于科学计算和数组操作。
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.mean()) # 计算数组的平均值
pandas
库:用于数据分析和操作,尤其适合处理表格数据。
import pandas as pd
data = {'Name': ['Tom', 'Jerry'], 'Age': [20, 22]}
df = pd.DataFrame(data)
print(df)
包是一个包含多个模块的文件夹,文件夹中有一个特殊的 __init__.py
文件,用来标识该文件夹是一个包。通过组织模块到包中,可以将代码分层次组织。
创建并使用包:
# 文件结构
# mypackage/
# ├── __init__.py
# ├── module1.py
# └── module2.py
# module1.py
def greet():
print("Hello from module1!")
# module2.py
def farewell():
print("Goodbye from module2!")
# main.py
from mypackage import module1, module2
module1.greet() # 调用 module1 中的函数
module2.farewell() # 调用 module2 中的函数
理解和使用模块与包是 Python 编程的基础技能。通过导入和使用标准库、第三方库以及自定义模块和包,你可以轻松地复用代码,组织代码结构,提升代码的可维护性和可读性。掌握这些内容,你将能有效地开发各种规模的 Python 应用程序。