Python进阶
掌握Python进阶特性可以让您的代码更加简洁、高效、可维护。本文介绍Python的核心进阶概念和最佳实践。
进阶特性概览
类别 | 内容 |
---|---|
面向对象编程 | 类设计、继承与多态、魔术方法 |
函数式编程 | 高阶函数、装饰器、生成器、推导式 |
并发编程 | 多线程、多进程、异步IO |
元编程 | 反射、元类、动态代码 |
面向对象编程
类与对象
class Person:
"""人员类"""
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"您好,我是{self.name},{self.age}岁。"
继承与多态
class Student(Person):
"""学生类,继承自Person类"""
def __init__(self, name, age, student_id):
super().__init__(name, age)
self.student_id = student_id
def study(self, subject):
return f"{self.name}正在学习{subject}"
# 重写父类方法
def greet(self):
return f"您好,我是学生{self.name},学号{self.student_id}"
函数式编程
高阶函数
# map函数 - 将函数应用于可迭代对象的每个元素
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16, 25]
# filter函数 - 过滤可迭代对象的元素
even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
# reduce函数 - 对可迭代对象的元素累积应用函数
from functools import reduce
sum_all = reduce(lambda x, y: x + y, numbers) # 15
列表推导式
# 基本列表推导式
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 带条件的推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0] # [0, 4, 16, 36, 64]
# 字典推导式
word_lengths = {word: len(word) for word in ["Python", "编程", "学习"]}
生成器
# 生成器函数 - 使用yield语句
def fibonacci(n):
"""生成斐波那契数列的前n项"""
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# 使用生成器
for num in fibonacci(10):
print(num) # 打印斐波那契数列的前10项
# 生成器表达式
even_gen = (x for x in range(100) if x % 2 == 0)
装饰器
# 简单装饰器
def log_function(func):
def wrapper(*args, **kwargs):
print(f"调用函数: {func.__name__}")
result = func(*args, **kwargs)
print(f"函数{func.__name__}执行完毕")
return result
return wrapper
# 使用装饰器
@log_function
def add(a, b):
return a + b
sum_result = add(3, 5) # 会打印日志信息
上下文管理器
# with语句自动管理资源
with open('example.txt', 'w') as file:
file.write('Hello, World!')
# 文件会自动关闭
# 自定义上下文管理器
class DatabaseConnection:
def __enter__(self):
print("连接数据库")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("关闭数据库连接")
return False
常用库与框架
领域 | 库名 | 功能 |
---|---|---|
数据科学 | NumPy | 数值计算 |
数据科学 | Pandas | 数据分析 |
数据科学 | Matplotlib | 数据可视化 |
机器学习 | scikit-learn | 经典机器学习 |
机器学习 | TensorFlow | 深度学习框架 |
机器学习 | PyTorch | 深度学习研究 |
Web开发 | Django | 全功能Web框架 |
Web开发 | Flask | 轻量级Web框架 |
Web开发 | FastAPI | 现代API框架 |
网络 | Requests | HTTP客户端 |
网络 | aiohttp | 异步HTTP |
网络 | Scrapy | 爬虫框架 |
掌握这些进阶概念将帮助您编写更高质量的Python代码,充分发挥Python的强大功能。