说我有如下因素代码:Python的属性和继承
class Class1(object):
def __init__(self):
self.my_attr = 1
self.my_other_attr = 2
class Class2(Class1):
def __init__(self):
super(Class1,self).__init__()
为什么不Class2中的Class1继承的属性?
说我有如下因素代码:Python的属性和继承
class Class1(object):
def __init__(self):
self.my_attr = 1
self.my_other_attr = 2
class Class2(Class1):
def __init__(self):
super(Class1,self).__init__()
为什么不Class2中的Class1继承的属性?
因为你给super
错误的类。它应该是:
class Class2(Class1):
def __init__(self):
super(Class2,self).__init__()
你也可以想看看这篇文章:http://fuhm.net/super-harmful/ 自从我读,我会只是做的Class1 .__的init __(个体经营) – 2010-06-16 13:23:04
@韦恩:那篇文章是误导性的,有点皱眉(但它是一个非常有趣和有用的阅读)。多重继承确实是问题,'super'更像是解决方案的一部分。选择“超级”就像说安全带不好,因为在事故中你仍然可能受伤。如果你使用'super',你通常会好得多。 – nikow 2010-06-16 13:27:49
nikow,有没有什么好的解释可以解释为什么超级更好? – 2010-06-16 15:02:59