Ich bin gespannt, wie attrs mit abstract classes kombiniert werden kann. Ich möchte eine abstrakte Klasse definieren, die abstrakte Eigenschaften definiert, die jede erbende Klasse haben muss.Python - attrs Klasse erbt von der abstrakten Klasse
Ich möchte attrs für diese erbende Klasse verwenden, um seine Eigenschaften zu definieren. Also habe ich versucht, ein wenig mit den beiden Spielen:
import abc
import attr
class Parent(object):
__metaclass__ = abc.ABCMeta
@abc.abstractproperty
def x(self):
pass
@attr.s()
class Child(Parent):
x = attr.ib()
c = Child(9)
c.x = 7
wirft die folgende Fehlermeldung:
AttributeError: can't set attribute
Vielleicht gibt es eine Möglichkeit, eine Eigenschaft zu erklären abstrakt mit attrs sein ?:
@attr.s()
class Parent(object):
__metaclass__ = abc.ABCMeta
x = attr.ib(abstract=True)
Wenn ich einen besseren Weg finde, die Vorteile der beiden Module zu nutzen, bin ich sehr dankbar!
Vielen Dank im Voraus!
Dies scheint auf https://github.com/python-attrs/attrs/issues/293 und https://github.com/python-attrs/attrs/issues/303 zu verweisen, oder? – hynek