Python 如何将单个值应用于所有kwarg值?

Python 如何将单个值应用于所有kwarg值?,python,keyword-argument,Python,Keyword Argument,我有一个接受kwarg的类,如果kwarg不存在,则默认为True class MyClass(object): def __init__(self, **kwargs): self.kwarg_one = kwargs.get('kwarg_one', True) self.kwarg_two = kwargs.get('kwarg_two', True) MyClass是从子类继承的父类 class MyOtherClass(MyClass)

我有一个接受kwarg的类,如果kwarg不存在,则默认为True

class MyClass(object):
    def __init__(self, **kwargs):    
        self.kwarg_one = kwargs.get('kwarg_one', True)
        self.kwarg_two = kwargs.get('kwarg_two', True)
MyClass是从子类继承的父类

class MyOtherClass(MyClass):
    def __init__(self, **kwargs):
        super(SubclassOne, self).__init__(**kwargs)
在MyClass中,kwarg_one和kwarg_one将包含布尔值,这些布尔值将加载大多数子类将使用的特定信息,但某些子类将不需要加载这些信息。在这种情况下,我可以为我不需要加载的特定kwarg传入False

moc = MyOtherClass(kwarg_one=False)
在另一种情况下,我将拥有仍然需要固有MyClass的类,但不需要加载父类加载的任何信息

moc = MyOtherClass(kwarg_one=False, kwarg_two=False)
只有两个Kwarg并不坏,但我预见我的类会接受多个参数,并且必须将False传递到10+个参数中可能会变得非常困难

是否有一种方法可以一次性传入False以使所有KWARG都为False?

您应该使用dict.fromkeys来使用来自iterable和给定值的键构建一个新的dict

moc = MyOtherClass(**dict.fromkeys(('kwarg_one', 'kwarg_two'), False))

如果我理解正确,你可以在MyClass上使用,arg_one=False,arg_two=False,**kwargs,不是吗?您还可以使用默认配置dict,将所有默认值设置为false,并使用update方法将kwargs作为参数,从而使用kwargs中设置的值覆盖默认值。