このようなインターフェイスでプロパティを定義することは良い習慣ですか?
class MyInterface(object):
def required_method(self):
raise NotImplementedError
@property
def required_property(self):
raise NotImplementedError
そのためにABC クラスを使用しますが、そうです。@abstractproperty
そのユースケースにa を使用することもできます。
from abc import ABCMeta, abstractproperty, abstractmethod
class MyInterface(object):
__metaclass__ = ABCMeta
@abstractmethod
def required_method(self):
pass
@abstractproperty
def required_property(self):
pass
ABC のサブクラスは、required_property
代わりに属性として自由に実装できます。ABC は の存在のみを確認し、required_property
それがどのタイプであるかは確認しません。