检查Python类中必需参数的最佳方法

Dar*_*rko 1 python arguments class kwargs

我有一个可以用不同的参数组合构建的类,但我有一个必需的参数列表.这是我目前检查的方式:

    # check for the required arguments
    rqrd_args = ['a', 'b', 'c']  # required arguments
    mssing_args = set(rqrd_args)-set(kwargs.keys())
    if mssing_args:
        error_lines = ['The following required arguments are missing:']
        error_lines.extend(['\t%s'%x for x in mssing_args])
        sys.exit('\n'.join(error_lines))

    # pull from kwargs
    self.a = kwargs['a']
    self.b = kwargs['b']
    self.c = kwargs['c']
Run Code Online (Sandbox Code Playgroud)

我倾向于重复使用这段代码.我的问题是,我可以以某种方式用循环来替换"#pull from kwargs"部分,该循环遍历所需的参数列表,这样代码更通用吗?我有什么理由不想这样做吗?

che*_*ner 5

如果需要,请将它们作为常规参数:

def __init__(a, b, c, **kwargs):
    self.a = a
    self.b = b
    self.c = c
    # ... then the rest in kwargs
Run Code Online (Sandbox Code Playgroud)