Python
Python
Python 由 Guido van Rossum 于 1991 年发布,是动态类型、解释执行的通用语言。设计哲学强调可读性和简洁性——"Beautiful is better than ugly"。快速原型开发、数据处理与分析、脚本自动化、机器学习与 AI、Web 后端服务是它的主场;运行性能和类型安全是短板,高频交易等极致性能场景更适合 Java 或 Go。
Python 知识全景:
语法基础
Python语法 是入门第一课:缩进代替花括号、一切皆对象。数据类型按可变性分阵营(list/dict/set 可变,str/tuple 不可变);变量是"名字绑定到对象",作用域按 LEGB 规则查找;函数传参传递对象引用——可变对象被修改外部可见,重新绑定形参则不影响实参,默认参数陷阱(可变默认值共享)是高发 bug。Python异常处理 用 try/except/else/finally 四段结构处理错误,with 语句通过上下文管理器自动管理资源(文件、锁、连接),自定义异常让调用方按业务语义捕获。
函数式编程
Python函数式编程 的四大件是推导式、高阶函数、装饰器、生成器。装饰器是给函数套外壳的语法糖,靠闭包记住被装饰函数——@property、@app.route()、@pytest.fixture() 都是经典应用;生成器用 yield 惰性求值,内存从 O(n) 降到 O(1)。
异步与并发
Python异步编程 用 asyncio 事件循环 + async/await 协程解决高并发 I/O:遇到 await 主动让出控制权,单线程调度大量等待任务。协程对 CPU 密集型无效,因为 GIL 限制单线程只能执行一个字节码——CPU 密集要靠 multiprocessing 多进程各占一核。
面向对象
与 Java 的差异体现在三个地方:
| 特性 | Python | Java |
|---|---|---|
| 继承 | 多继承(C3 MRO) | 单继承 + 接口 |
| 方法 | 全部虚方法 | 可 final |
| 构造函数 | __init__(初始化)/ __new__(真正构造) | 构造函数 |
类定义语法:class 关键字 + 继承列表,方法第一个参数必须是 self(实例自身),属性在 __init__ 中初始化:
class Animal:
def __init__(self, name): # 构造器:初始化实例属性
self.name = name
def speak(self): # 实例方法:第一个参数 self
raise NotImplementedError
class Dog(Animal): # 继承
def speak(self): # 覆写父类方法
return f"{self.name}: 汪汪"
d = Dog("旺财")
d.speak() # '旺财: 汪汪'魔术方法(Dunder Methods)让对象自定义内置行为:__str__/__repr__ 控制字符串表示,__len__ 支持 len(),__getitem__ 支持下标访问,__enter__/__exit__ 实现上下文管理器。
类型提示
Python 3.5+ 引入 Type Hints,typing 模块提供 List、Dict、Optional、Union 等注解。类型提示不改变动态类型本质,运行时不强制检查——价值在于 IDE 补全更准确、大型项目重构更安全;mypy 可在运行前发现类型错误。
与 Java 的对比
| 维度 | Python | Java |
|---|---|---|
| 适用场景 | 快速原型、数据处理、ML | 高并发服务、企业系统 |
| 类型系统 | 动态类型 | 静态类型 |
| 性能 | 解释执行,较慢 | JVM 优化,较快 |
| 生态 | NumPy/Pandas/Django | Spring/微服务生态 |
在微服务架构中两者常共存——Python 负责数据管道和模型训练,Java 负责核心业务服务。