【发布时间】:2016-09-23 22:05:48
【问题描述】:
如何在完全构造类之前调用的方法中实现超级相似的行为。可以这样实现一系列相互依赖的方法吗?
from six import with_metaclass
class Meta(type):
"""a metaclass"""
def __init__(cls, name, bases, classdict):
cls.setup_class()
def setup_class(cls):
pass
class A(with_metaclass(Meta, object)):
"""a class"""
@classmethod
def instantiate(cls, name):
print("instantiating through '%s'" % name)
@classmethod
def setup_class(cls):
cls.instantiate('A')
class B(A):
@classmethod
def setup_class(cls):
super(B, cls).setup_class()
cls.instantiate('B')
class C(B) pass
但显然这是行不通的,因为在调用 setup_class 时,B 不正确存在。
【问题讨论】:
标签: python inheritance super metaclass