【发布时间】:2021-08-09 20:48:49
【问题描述】:
为什么在我运行test_func() 时会出现{'kwargs':{'1':'a', '2':'b'}}?
我本来希望这会打印出来:{'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'}}
【问题讨论】:
-
这能回答你的问题吗? Passing a list of kwargs? 使用
my_class = MyClass(**test_kwargs)。 -
如果你定义了
def __init__(self, kwargs):没有**,你会得到预期的结果。 -
@paxdiablo 你为什么重新打开这个? OP 说副本回答了他们的问题。
-
@JohnKugelman:我投票决定重新开放,因为问题本身与提议的问题并不重复。另一个问题是如何将
kwargs传递给另一个函数,这个函数正在寻找信息,说明为什么这样做会涉及额外的间接级别。相关,是的,但在我看来不是重复的 - 重复关闭的文本是“这个问题之前已经被问过并且已经有了答案”。