在这样的接口中定义属性是一种好习惯吗?
class MyInterface(object):
def required_method(self):
raise NotImplementedError
@property
def required_property(self):
raise NotImplementedError
我会为此使用ABC 类,但是是的;您甚至可以将 a@abstractproperty
用于该用例。
from abc import ABCMeta, abstractproperty, abstractmethod
class MyInterface(object):
__metaclass__ = ABCMeta
@abstractmethod
def required_method(self):
pass
@abstractproperty
def required_property(self):
pass
required_property
ABC 的子类仍然可以作为属性自由实现;ABC 只会验证 的存在required_property
,而不是它是什么类型。