夸格斯用方法提出一个类型

2024-05-29 10:35:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在方法参数中使用**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: 方法key代码textselfformat参数return
1条回答
网友
1楼 · 发布于 2024-05-29 10:35:44

您的TextFormatter.format方法有三个参数:

  1. self,这是一个隐式传递的位置参数。在
  2. text,这是另一个位置参数。在
  3. **key_vals,它收集任何额外的关键字参数。在

这意味着您的方法只接受2个位置参数。但是你给了它3(self"test",和字典{ "p1" : "t1", "p2" : "t2"})。这样做会引发TypeError。在


要解决此问题,您需要在使用**传递字典时对其进行解压缩:

print(formatter.format("test", **{ "p1" : "t1", "p2" : "t2"}))

或者,可以直接传递关键字参数:

^{pr2}$

相关问题 更多 >

    热门问题