我是否可以定义__init__以便将**kwargs中定义的关键字分配给类?
例如,如果要用ValidationRule初始化一个ValidationRule(other='email')类,则应将self.other的值添加到该类中,而不必显式地命名每个可能的Kwarg。

class ValidationRule:
    def __init__(self, **kwargs):
        # code to assign **kwargs to .self

最佳答案

这可能不是最干净的方法,但它可以工作:

class ValidationRule:
    def __init__(self, **kwargs):
        self.__dict__.update(kwargs)

我想我更喜欢ony's solution,因为当您的输入来自外部源时,它限制了可用的属性,以避免您遇到麻烦。

关于python - 我如何将** kwargs复制到自己?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2535917/

10-10 21:29
查看更多