【发布时间】:2019-08-31 19:04:24
【问题描述】:
我有一个项目,其中有一个基类和一堆派生类。真的主要是为了确保我不会忘记任何我想要实施的东西,以进行某种方法实现检查。我想知道这是否有意义,以及继承是否存在任何潜在冲突。
class Base:
def __init_subclass__(cls, **kwargs):
super().__init_subclass__()
for prop in ['prop_to_check']: # extend this list for additional properties to check
if not hasattr(cls, prop):
raise NotImplementedError(f'{prop} is not implemented on {cls.__name__}')
class Derived(Base):
prop_to_check = 3
pass
class Derived2(Base):
pass
Derived()
Derived2()
干杯 费边
【问题讨论】:
-
有什么理由不使用
abc模块? -
这可能不是一个很好的理由 :) 先看过一个关于 init_subclass 的视频 :D