Python 刚开始在discord.py中使用cogs,所以我将代码复制到cogs中,但有一件事以前是不在cog中工作的,我不知道为什么。下面是代码示例
sverify_index=0
sverify_msg_id=""
@commands.Cog.listener()
async def on_message(self, message):
if message.channel.id == 888529033405530183 and message.author.id != 887542628063780864:
global sverify_index, sverify_msg_id
sverify_index += 1
sverify_list = []
sverify_list.append(sverify_index)
目前我得到的错误是
line 19, in on_message
sverify_index += 1
NameError: name 'sverify_index' is not defined
请帮忙
基于缩进和
self
的存在,我认为你有类似的东西这将使
sverify_index
和sverify_msg_id
类级别的变量(由Something...
的所有实例共享)不是全局变量如果你真的想让它们成为全局变量,你可以这样做
使它们成为真正的全局变量
正如AKX提到的,它们是当前定义的类级变量。 为了将它们作为全局变量,可以将它们移出类
另一种方法
因为问题不是让它们成为全局变量,而是为什么它们在移动到类时不可访问,所以另一个解决方案是将它们作为类级变量保留,然后像
self.sverify_index
和self.sverify_msg_id
那样访问它们因此,解决方案如下
相关问题 更多 >
编程相关推荐