TypeError:OneTalk()正好接受5个参数(给定4个)

2024-05-23 22:42:38 发布

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

import host
Noms = "Name"

def init():
    host.registerHandler('ChatReceivedExtended', onTalk) # extended to distinguish between local chat and whispers

def deinit():
    host.unregisterHandler('ChatReceivedExtended', onTalk)

def onTalk(bnet, user, message, isWhisper, payload):
    if isWhisper and user.getName() == Noms:
        bnet.queueChatCommand("/me " + message)
        bnet.queueChatCommand("/f m " + message)

当我尝试运行脚本时,它会给我"TypeError: OneTalk() takes exactly 5 arguments (4 given)"。但是当我在第11行中添加username时,它给了我"TypeError: OneTalk() takes exactly 5 arguments (6 given)'。在

^{pr2}$

Tags: andhostmessagedefusertakesbnetexactly
2条回答

仅仅基于onlineexamples,看起来一个有4个参数的方法应该作为处理程序,而不是像您所尝试的那样是5个或6个参数。在

尝试:

def onTalk(bnet, user, message, isWhisper):
    if isWhisper and user.getName() == Noms:
        bnet.queueChatCommand("/me " + message)
        bnet.queueChatCommand("/f m " + message)

另外,如果您包含完整的回溯,并为您的执行环境提供一些上下文(例如,“我正在为pychop和….”编写一个插件)

onTalk更改为以下建议,您将看到实际调用方式:

def onTalk( *args, **kwargs):
    print args
    print kwargs

你可以调整参数的数量。在

相关问题 更多 >