私は好奇心が強いですattrsはabstract classesと組み合わせることができます。 私は抽象クラスを定義する必要があります。抽象クラスは、すべての継承クラスに必要な抽象プロパティを定義します。Python - 抽象クラスから継承するattrsクラス
プロパティを定義するために、この継承クラスにattrsを使用します。
AttributeError: can't set attribute
おそらく抽象使っattrsに?:
@attr.s()
class Parent(object):
__metaclass__ = abc.ABCMeta
x = attr.ib(abstract=True)
するプロパティを宣言するための方法がある:
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
は、次のエラーが発生します。だから私は両方で少し遊んでみました
2つのモジュールの利点を得るためのより良い方法を見つけたら、私はとても感謝しています!
事前に感謝します。
これはhttps://github.com/python-attrs/attrs/issues/293とhttps://github.com/python-attrs/attrs/issues/303を暗示しているようです。 – hynek