动态创建函数及其参数

时间:2019-09-05 02:39:42

标签: python python-3.x metaprogramming

我试图用自己的__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方法来做到这一点,但是我不确定那是什么样。

0 个答案:

没有答案