我试图用自己的__init__函数动态生成子类,这些子类具有适当的关键字参数和文档字符串,以使其使用更加容易和明显。
目前,我已经对其进行了设置,以使得存在一个基类和具有必需属性的子类。 __init__函数检查kwarg中是否存在所有必需的项。例如
class Base():
required = []
def __init__(self, **kwargs):
for req in required:
assert req in kwargs, f'Missing required argument {req}'
# common setup
# def common functions
class A(Base):
required = ['arg1','arg2']
class B(Base):
required = ['arg1','arg3']
上面的方法有效,但是对于使用类A和B的库用户而言,它做到了这一点,因此他们必须知道要查看必需的属性,而不是通过常规检查类和__init__来了解这些属性。
我怀疑可以通过巧妙地在__init_subclass__
上添加Base
方法来做到这一点,但是我不确定那是什么样。