Wie implementiere ich superähnliches Verhalten in Methoden, die aufgerufen werden, bevor eine Klasse vollständig erstellt wurde? Kann ich eine Reihe voneinander abhängiger Methoden wie diese implementieren?Korrekte Implementierung der Methodenvererbung während der Klassenkonstruktion
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
Offensichtlich kann dies allerdings nicht funktionieren, da B
existiert nicht richtig, wenn setup_class
genannt wird.