在Python的宇宙中,类是创造万物的DNA,实例则是具象化的生命体。理解二者的互动机制,是掌握Python面向对象编程的核心密钥。
类的本质:对象工厂与命名空间
class Robot:
species = "Artificial" # 类属性
def __init__(self, name):
self.name = name # 实例属性
# 实例化过程
r2d2 = Robot("R2-D2")
- 类属性:被所有实例共享(如
species) - 实例属性:每个对象独立存储(如
name) self机制:隐式传递当前实例引用
实例化黑盒:从类到对象的诞生
__new__阶段:分配内存创建原始对象(通常不重写)__init__阶段:初始化实例属性(构造器)- 绑定方法:类函数转化为实例方法,自动绑定
self
>>> r2d2.speak = lambda: "Beep!"
>>> r2d2.speak() # 动态绑定
'Beep!'
继承体系:MRO与多继承迷宫
graph LR
A[object] --> B[Animal]
A --> C[Machine]
B --> D[Robot]
C --> D
- MRO算法:
D.__mro__= (D, B, C, A) - super()动态解析:按MRO链调用父类方法
- 混入类(Mixin):通过多继承实现功能组合
魔法方法:对象行为的基因编辑
|
方法 |
触发场景 |
典型应用 |
|
|
属性访问时 |
实现属性代理 |
|
|
实例被调用时 |
创建可调用对象 |
|
|
类定义中声明 |
优化内存占用 |
当修改类属性时,所有现存实例立即"感应"变化——这种动态绑定机制,正是Python面向对象设计的灵魂所在。下个问题:Python如何通过描述符(Descriptor)实现属性托管?这背后隐藏着怎样的元编程哲学?
1637

被折叠的 条评论
为什么被折叠?



