Python
Python
Python 由 Guido van Rossum 于 1991 年发布,是动态类型、解释执行的通用语言。设计哲学强调可读性和简洁性——"Beautiful is better than ugly"。
适用场景
快速原型开发、数据处理与分析、脚本自动化、机器学习与 AI、Web 后端服务。
Python 知识结构:
核心特性
语法设计
Python 代码量通常只有 Java 的 1/3 到 1/5。缩进代替花括号强制统一风格;动态类型省去类型声明;列表推导式和生成器表达式让数据处理更直观。
数据类型体系:整数无大小限制,浮点数遵循 IEEE 754,字符串是不可变 Unicode 序列,dict 和 set 基于哈希表(O(1) 查找)。Python 3.10 引入的 match 语句是对 if-elif-else 的现代化补充。
函数式编程
函数是一等公民,可赋值给变量、作为参数/返回值传递。lambda + map()/filter()/reduce() 实现集合的函数式变换。
装饰器(Decorator)本质是高阶函数的语法化——@property、@staticmethod、Flask 的 @app.route()、pytest 的 @pytest.fixture() 都是经典应用。
生成器(Generator)用 yield 实现惰性求值,内存占用从 O(n) 降到 O(1)。处理日志文件、数据库游标、API 分页等场景的标准做法。
面向对象
与 Java 有显著差异:
| 特性 | Python | Java |
|---|---|---|
| 继承 | 多继承(C3 MRO) | 单继承 + 接口 |
| 方法 | 全部虚方法 | 可 final |
| 构造函数 | __init__(初始化)/ __new__(真正构造) | 构造函数 |
| 封装 | 命名约定(_prefix/__prefix) | 访问修饰符 |
魔术方法(Dunder Methods)让对象自定义内置行为:__str__/__repr__ 控制字符串表示,__len__ 支持 len(),__getitem__ 支持下标访问,__enter__/__exit__ 实现上下文管理器。
异步编程
async/await + asyncio 基于事件循环和协程实现非阻塞 I/O。与 Java CompletableFuture 相比,协程更轻量、上下文切换开销更小。
注意
GIL 限制 异步编程适用于 I/O 密集型场景,对 CPU 密集型任务帮助有限。CPU 密集型计算用 multiprocessing 模块绕过 GIL(全局解释器锁)。
类型提示
Python 3.5+ 引入 Type Hints,typing 模块提供 List、Dict、Optional、Union 等注解。mypy 可在运行前发现类型错误。
类型提示的价值
不改变动态类型本质,运行时不强制检查。价值在于:IDE 补全更准确、代码可读性提高、大型项目重构更安全。
与 Java 的对比
| 维度 | Python | Java |
|---|---|---|
| 适用场景 | 快速原型、数据处理、ML | 高并发服务、企业系统 |
| 类型系统 | 动态类型 | 静态类型 |
| 性能 | 解释执行,较慢 | JVM 优化,较快 |
| 生态 | NumPy/Pandas/Django | Spring/微服务生态 |
在微服务架构中两者常共存——Python 负责数据管道和模型训练,Java 负责核心业务服务。