为什么在使用**kwargs时会出现关键的“kwargs”?
为什么{'kwargs':{'1':'a', '2':'b'}}我跑的时候会出现test_func()?我原以为会打印:{'1':'a', '2':'b'}.
代码:
class MyClass:
def __init__(self, **kwargs):
self.kwargs = kwargs
def test_func(self):
print(self.kwargs)
test_kwargs = {'1':'a', '2':'b'}
my_class = MyClass(kwargs=test_kwargs)
my_class.test_func()
输出:
{'kwargs': {'1': 'a', '2': 'b'}}
回答
这是因为您通过传递以kwargs字典命名的 1 个关键字参数作为值来初始化实例。
如果您想将字典视为 kwargs,则需要调用使用 my_class = MyClass(**test_kwargs)