将所有python抽象类属性/方法指定为抽象类,每个属性/方法都不带修饰符

将所有python抽象类属性/方法指定为抽象类,每个属性/方法都不带修饰符,python,abstract,Python,Abstract,我有一个这样的抽象类: class SomeAbstract(object): __metaclass__ = ABCMeta @abstractproperty def one(self): pass @abstractproperty def two(self): pass @abstractproperty def three(self): pass ... @abstractmethod def s

我有一个这样的抽象类:

class SomeAbstract(object):
    __metaclass__ = ABCMeta

    @abstractproperty
    def one(self): pass

    @abstractproperty
    def two(self): pass

    @abstractproperty
    def three(self): pass

    ...

    @abstractmethod
    def somemethod(self): pass

    ...

有没有一种方法可以将抽象类的所有属性和方法指定为抽象类,而不必在所有属性和方法上都添加装饰符?

您可以编写一个新的元类,该元类继承自
ABCMeta
,使所有方法和属性自动抽象,然后在类中使用该元类。不过,您需要谨慎地找到一些方法来防止行为传播到从抽象基继承的类。

如果没有任何实现,为什么要将其设为ABC?一个“接口”,非正式的或由专门用于该用例的第三方库强制执行的,可能更合适。