Python 类编程:继承、重载与迭代
1. 继承与方法特化
1.1 继承搜索树
在 Python 中,存在一个属性命名空间树,它从实例开始,延伸到创建该实例的类,再到类头中列出的所有超类。每次使用限定符从实例对象中获取属性名时,Python 会在这个树中从实例向上搜索到超类。
1.2 特化继承方法
继承的树搜索模型是特化系统的好方法。由于继承在检查超类之前会先在子类中查找名称,所以子类可以通过重新定义超类的属性来替换默认行为。子类特化的技术有多种,例如完全替换继承的属性、提供超类期望的属性,以及通过在重写的方法中回调超类来扩展超类方法。
以下是一个扩展超类方法的示例:
class Super:
def method(self):
print('in Super.method')
class Sub(Super):
def method(self):
print('starting Sub.method')
Super.method(self)
print('ending Sub.method')
x = Super()
x.method()
x = Sub()
x.method()
在这个例子中, Sub 类用自己的版本替换了 Super 的 method 函数,但在替换过程中, Sub 回调了 S
订阅专栏 解锁全文
412



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



