回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这是在我使用的聊天室中运行主持人bot的代码的一部分。这段代码是为了批准某人的请求,但是每当我使用这个命令时,我都会得到这个未绑定的本地错误。。。
我已经经历了这么多次,我不明白为什么我会得到它。在</p>
<pre><code>def approveCam(room, identifier):
if not room.bpass:
return
if type(identifier) in [str, unicode, int]:
user = room._getUser(identifier)
if not user:
return "User " + str(identifier) + " was not found..."
if user.broadcasting:
return
room._sendCommand("privmsg", [room._encodeMessage("/allowbroadcast " + room.bpass),
"#0,en" + "n" + str(user.id) + "-" + user.nick])
</code></pre>
<p>问题似乎出在“如果”用户广播:“</p>
<p>该代码在以前版本的bot上运行,如下所示</p>
^{pr2}$
<p>下面是我在命令提示符下运行命令时得到的响应。在</p>
<pre><code>Traceback (most recent call last):
File "C:\Users\Ejah\Downloads\Desktop\Tunebot-Master\tinychat.py", line 1262
in onMessage
SETTINGS['onMessageExtend'](self, user, msg)
File "tunebot.py", line 1316, in onMessageExtended
handleUserCommand(room, user, msg)
File "tunebot.py", line 1722, in handleUserCommand
res = botterCommands(room, userCmd, userArgsStr, userArgs, target,
File "tunebot.py", line 2786, in botterCommands
res = approveCam(room, user)
File "tunebot.py", line 4043, in approveCam
if user.broadcasting:
UnboundLocalError: local variable 'user' referenced before assignment"
</code></pre>