类型错误:me()需要2个参数(给了3个)

0 投票
2 回答
5547 浏览
提问于 2025-04-17 19:37

我正在尝试使用一个supybot的插件,但总是遇到错误,没办法解决(我用的是Python 2.6)

我遇到的错误是:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/supybot/callbacks.py", line 1180, in _callCommand
    self.callCommand(command, irc, msg, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/supybot/utils/python.py", line 86, in g
    f(self, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/supybot/callbacks.py", line 1166, in callCommand
    method(irc, msg, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/supybot/commands.py", line 913, in newf
    f(self, irc, msg, args, *state.args, **state.kwargs)
  File "/usr/lib/python2.6/site-packages/supybot/plugins/Slap1/plugin.py", line 109, in slap
    self.me(irc, text)
TypeError: me() takes exactly 2 arguments (3 given)
ERROR 2013-03-19T15:13:13 supybot Exception id: 0x873c0

插件的代码可以在这里找到:

https://raw.github.com/StevenRKM/supybot-plugins/master/Slap/plugin.py

请帮我解决这个问题

2 个回答

2

我觉得这个信息给出了一个很明确的提示,说明哪里出错了。

你在调用 me() 这个函数时传了三个参数(selfirctext),但这个函数其实只需要两个参数(selfmsg)。

4

你的 me 方法的定义是这样的:def me(self, msg)。但是它被调用的方式是 self.me(irc, text),这就意味着它的定义应该改成 def me(self, irc, msg)

撰写回答