python 高级功能
以下是 Python 中被广泛使用的 高级功能,适用于构建复杂系统、提升代码效率和可读性:
1. 生成器(Generators)
- 用途:惰性求值(Lazy Evaluation),节省内存。
- 语法:使用
yield关键字。 - 适用场景:处理大数据流、文件读取、无限序列等。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 使用生成器
fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
2. 协程(Coroutines)
- 用途:实现异步编程,用于 I/O 密集型任务(如网络请求、文件读写)。
- 语法:
async def定义协程,await执行异步等待。 - 适用场景:爬虫、Web 服务、异步任务调度等。
async def fetch_data():
import aiohttp
async with aiohttp.ClientSession() as session:
async with session.get("https://example.com") as response:
return await response.text()
# 运行协程
import asyncio
asyncio.run(fetch_data())
3. 装饰器(Decorators)
- 用途:增强函数行为,而无需修改函数本身。
- 语法:
@decorator。 - 适用场景:权限校验、日志记录、缓存、异常处理等。
def log(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__}")
return func(*args, **kwargs)
return wrapper
@log
def greet(name):
print(f"Hello, {name}")
greet("Alice")
4. 元编程(Metaprogramming)
- 用途:在运行时动态修改或创建类和函数。
- 语法:
type()、__metaclass__、inspect模块。 - 适用场景:ORM、插件系统、自动注册类等。
class MyMeta(type):
def __new__(cls, name, bases, attrs):
print(f"Creating class {name}")
return super().__new__(cls, name, bases, attrs)
class MyClass(metaclass=MyMeta):
pass
5. 上下文管理器(Context Managers)
- 用途:自动管理资源(如文件、锁、数据库连接)。
- 语法:
with语句。 - 适用场景:文件读写、资源清理、临时状态管理等。
with open("file.txt", "r") as f:
content = f.read()
print(content)
6. 类型注解(Type Hints)
- 用途:为变量、函数参数和返回值添加类型信息。
- 语法:
x: int、def func(x: int) -> str。 - 工具支持:
mypy(静态类型检查工具)。
def add(a: int, b: int) -> int:
return a + b
7. 并发与并行
- 并发(Concurrency):通过事件循环(
asyncio)实现。 - 并行(Parallelism):通过多进程(
multiprocessing)或线程池(concurrent.futures)实现。 - 适用场景:
- 并发:I/O 密集型(如网络请求、文件读写)。
- 并行:CPU 密集型(如图像处理、数值计算)。
🛠️ 二、Python 好用的工具推荐
以下是 Python 开发者常用的 现代工具,用于提升开发效率和代码质量:
| 工具 | 功能 | 优势 |
|---|---|---|
uv |
包管理(替代 pip、venv、pip-tools) | 超快依赖解析,支持 pyproject.toml |
ruff |
代码检查(linter) | 比 flake8 快 100x+ |
pytest |
单元测试框架 | 支持 fixture、参数化、覆盖率 |
typer |
CLI 工具开发 | 基于类型提示,自动生成帮助信息 |
rich |
终端输出美化 | 支持表格、进度条、日志等 |
httpx |
异步 HTTP 客户端 | 支持 async/await,替代 requests |
fastapi |
现代 Web 框架 | 支持异步,性能高,自动生成 OpenAPI 文档 |


浙公网安备 33010602011771号