我真的需要从超类的子类中找到某种方法来获取超类的类方法。
这是通用代码:
class A(object):
def __init__(self):
print "A init"
@classmethod
def _method(cls):
print cls
return cls()
class B(A):
def __init__(self):
print "B init"
class C(B):
def __init__(self):
print "C init"
@classmethod
def _method(cls):
print "calling super(C)'s classmethod"
return super(C)._method()
c = C._method()
这导致:
Traceback (most recent call last):
File "C:/Python27x64/testclass", line 26, in <module>
c = C._method()
File "C:/Python27x64/testclass", line 22, in _method
return super(C)._method()
AttributeError: 'super' object has no attribute '_method'
请注意c = C._method()
,我正在调用未初始化类C
的类方法。从 开始C
,我还调用未初始化的类A
或B
(遍历 MRO)的类方法。
我怎样才能做到这一点?