我有一个关于一个项目的问题:
class A:
def __init__(self, x, y):
self.x = x
self.y = y
def to_string(self):
return "x, y = (" + str(self.x) + ", " + str(self.y) + ")"
def __str__(self):
return self.to_string()
class B(A):
def __init__(self, z, *args):
A.__init__(self, *args)
self.z = z
def __str__(self):
return super().__str__()
class C(A):
def __init__(self, *args):
super().__init__(*args)
def to_string(self):
return "Klasse C, " + super().to_string()
为什么我要写
^{pr2}$而不是
A.__init__(*args)
在C班有效吗? 很多问候
您正在访问unbound方法,因此
self
未传入。没有上下文让A.__init__
知道要绑定到哪个实例。在您有几个选项可以提供该上下文:
self
。在A.__init__.__get__(self)(*args)
手动绑定super().__init__(*args)
,然后上下文从当前方法中获取。见Why is Python 3.x's super() magic?相关问题 更多 >
编程相关推荐