1

このようなインターフェイスでプロパティを定義することは良い習慣ですか?

class MyInterface(object):
    def required_method(self):
        raise NotImplementedError

    @property
    def required_property(self):
        raise NotImplementedError
4

1 に答える 1

4

そのために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それがどのタイプであるかは確認しません。

于 2013-02-01T11:40:02.787 に答える