【发布时间】:2019-02-16 17:06:49
【问题描述】:
我有一个关于继承/重载的问题。要理解我的问题,我觉得最好先展示一段代码:
class A():
def __init__(self):
self.var1 = 10
self.var2 = 20
self.var3 = 30
class B(A):
def __init__(self): #Bad, because I am probably overloading the whole "constructor"
self.var2 = 15
B 类继承自 A 类。现在我的问题是,有没有办法只重载 B 类中属性 self.var2 的值,同时保持 self.var1 和 self.var3 原样?
【问题讨论】:
-
先使用
super -
先调用基类的init。使用 super() 或直接作为 A.__init__。很可能是重复的。
-
虽然看起来很枯燥,但学习术语很有用:这称为覆盖,而不是重载。重载是另一回事。
标签: python inheritance overloading init