Python 进阶核心是脱离基础语法,掌握工程化、高效、优雅的编程能力,覆盖高级语法、并发编程、性能优化、设计模式、工程实践五大核心模块,我会按学习优先级整理,附带实战用法。
一、Python 高级语法(基础进阶,必学)
熟练掌握后能写出简洁、高效、Pythonic 的代码,是进阶的敲门砖。
1. 迭代器与生成器
- 迭代器:实现
__iter__和__next__方法,惰性遍历数据,节省内存 - 生成器:用
yield关键字创建,是简化版迭代器,边计算边返回,不占用全量内存
# 生成器:生成1~n的平方,不一次性生成所有值
def square_generator(n):for i in range(1, n+1):yield i ** 2 # 暂停函数,返回值,下次调用继续执行# 遍历生成器
for num in square_generator(5):print(num) # 1,4,9,16,25
2. 装饰器
核心作用:不修改原函数代码,为函数添加额外功能(日志、计时、权限校验)
import time
# 计时装饰器
def timer(func):def wrapper(*args, **kwargs):start = time.time()result = func(*args, **kwargs) # 执行原函数end = time.time()print(f"函数{func.__name__}执行耗时:{end-start:.4f}s")return resultreturn wrapper# 使用装饰器
@timer
def test_func():time.sleep(1)test_func()
3. 上下文管理器
用于自动管理资源(文件、数据库连接、线程锁),避免资源泄漏,用 with 语句调用
# 自定义上下文管理器
class FileHandler:def __init__(self, filename, mode):self.filename = filenameself.mode = modedef __enter__(self):self.file = open(self.filename, self.mode)return self.filedef __exit__(self, exc_type, exc_val, exc_tb):self.file.close() # 自动关闭文件# 使用
with FileHandler("test.txt", "w") as f:f.write("Python进阶")
4. 函数式编程
lambda匿名函数、map/filter/reduce高阶函数- 闭包、偏函数(
functools.partial)
二、并发与并行(性能核心,进阶必备)
解决IO密集型(网络请求、文件读写)和CPU密集型(大量计算)任务慢的问题。
1. 多线程(threading)
适合IO密集型任务,受GIL限制,不能真正并行,但IO等待时会切换线程
import threading
import timedef task(name):print(f"线程{name}开始")time.sleep(2) # 模拟IO等待print(f"线程{name}结束")# 创建线程
t1 = threading.Thread(target=task, args=("A",))
t2 = threading.Thread(target=task, args=("B",))t1.start()
t2.start()
t1.join()
t2.join()
2. 多进程(multiprocessing)
适合CPU密集型任务,绕过GIL,真正利用多核CPU
3. 协程(asyncio,Python 3.7+)
进阶首选:单线程内实现并发,性能远超多线程,专为高并发IO设计
import asyncioasync def async_task(name):print(f"协程{name}开始")await asyncio.sleep(2) # 异步等待,不阻塞线程print(f"协程{name}结束")async def main():# 并发执行两个协程await asyncio.gather(async_task("A"), async_task("B"))asyncio.run(main())
三、面向对象进阶(工程化必备)
超越基础类/对象,掌握Python OOP高级特性:
- 魔法方法:
__str__、__repr__、__getitem__、运算符重载 - 元类(
type):创建类的类,控制类的创建(框架底层核心) - 属性管理:
@property、@dataclass(数据类简化代码) - 继承与MRO:多继承方法解析顺序
# dataclass:自动生成构造方法、__repr__等,简化数据类
from dataclasses import dataclass@dataclass
class Student:name: strage: intscore: floatstu = Student("小明", 18, 95.5)
print(stu) # Student(name='小明', age=18, score=95.5)
四、设计模式与代码规范
进阶程序员必须写出可维护、可扩展的代码:
- 常用设计模式
- 单例模式、工厂模式、装饰器模式、观察者模式
- 代码规范
- PEP8 规范(自动格式化工具:
black) - 类型注解(
typing模块,提升代码可读性)
- PEP8 规范(自动格式化工具:
# 类型注解:明确参数和返回值类型
def add(a: int, b: int) -> int:return a + b
五、性能优化与调试
- 性能分析:
cProfile分析函数耗时,memory_profiler分析内存占用 - 优化技巧:
- 用列表推导式代替for循环
- 用生成器代替大列表
- 用内置函数(
map/sum)代替手写循环
- 高级调试:
pdb命令行调试、logging替代print日志
六、工程化实践(企业级必备)
- 包管理:
pipenv/poetry管理依赖,生成requirements.txt - 模块化与打包:将代码拆分为包,用
setuptools打包发布 - 异常处理:自定义异常、全局异常捕获
- 测试:
pytest单元测试、接口测试
进阶学习路线(按顺序)
- 高级语法(迭代器、生成器、装饰器)
- 面向对象进阶 + 类型注解
- 协程
asyncio(并发核心) - 设计模式 + 代码规范
- 性能优化 + 工程化实践
总结
- Python 进阶的核心是内存优化、并发性能、工程化代码
- 优先掌握生成器、装饰器、asyncio协程、dataclass四大高频知识点
- 进阶最终目标:写出高效、简洁、可维护的企业级Python代码
