我尝试在方法参数中使用**kwargs
,下面是我的代码:
class TextFormatter:
def format(self, text, **key_vals):
injected_text = text
return injected_text;
formatter = TextFormatter()
print(formatter.format("test", { "p1" : "t1", "p2" : "t2"}))
不幸的是,我得到了这个错误:
^{pr2}$
你知道我的代码怎么了吗?在
Tags:
您的
TextFormatter.format
方法有三个参数:self
,这是一个隐式传递的位置参数。在text
,这是另一个位置参数。在**key_vals
,它收集任何额外的关键字参数。在这意味着您的方法只接受2个位置参数。但是你给了它3(
self
,"test"
,和字典{ "p1" : "t1", "p2" : "t2"}
)。这样做会引发TypeError
。在要解决此问题,您需要在使用
**
传递字典时对其进行解压缩:或者,可以直接传递关键字参数:
^{pr2}$相关问题 更多 >
编程相关推荐