Ich möchte für Child-Prozess bestimmte Eigenschaften haben, aber da Sie untergeordnete Methoden nicht erben können, den Property Decorator, möchte ich zumindest behaupten, dass diese Attribute des Kindes sind Eigenschaften der Klasse.Assert Kind Attribut ist Eigentum von Elternklasse
Etwas wie folgt aus:
class Parent:
def __init__(self):
assert isinstance(self.foo, property)
def foo(self):
raise NotImplementedError
class Child(Parent):
def __init__(self):
super().__init__()
@property
def foo(self):
return 'bar'
Aber natürlich durch die Zeit Parent.__init__()
ausgeführt wird, hat self.foo
'bar'
geworden und es gibt eine AssertionError
. Gibt es eine Möglichkeit zu erreichen, was ich für die Verwendung von Meta-Klassen tun werde? Wenn ja, kann es sein, dass die Klasse Parent
diejenige ist, die die Metaklasse erbt, nicht die Child
?
Warum nicht https://docs.python.org/3/library/abc.html#abc.abstractproperty verwenden? – jonrsharpe
Ahh, perfekt. Einreichen und antworten und ich werde es akzeptieren – v4gil
Eigentlich sieht das gut aus, aber ich kann es nicht zum Laufen bringen. abc.abstractproperty ist veraltet und sagt abstractmethod mit property. Ich kann es nicht bekommen, um einen Fehler zu verursachen. – v4gil