如果kwargs
不存在,我的课程会引用True
并默认为kwarg
。
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
将包含boolean
个值,这些值将加载大多数子类将使用的特定信息,但某些子类不需要加载信息。在这种情况下,我可以传递False
以获取我不需要加载的特定kwarg
。
moc = MyOtherClass(kwarg_one=False)
在其他情况下,我将拥有仍需要固有MyClass
的类,但不需要加载父类加载的任何信息。
moc = MyOtherClass(kwarg_one=False, kwarg_two=False)
只有两个kwargs
并不坏,但我预见MyClass
接受多个参数,将False
传递给10多个参数可能会变得很累。
有没有办法传入False
一次,以便所有kwargs
都是False
?
答案 0 :(得分:1)
您应该使用dict.fromkeys
使用可迭代和给定值的键来构建新的dict
。
moc = MyOtherClass(**dict.fromkeys(('kwarg_one', 'kwarg_two'), False))