Python 字典出现Discord.py运行时错误
所以,我一直在尝试制作一个机器人,它在我服务器中的所有成员之间循环。我正在使用get_all_members()生成器来执行此操作Python 字典出现Discord.py运行时错误,python,discord,members,Python,Discord,Members,所以,我一直在尝试制作一个机器人,它在我服务器中的所有成员之间循环。我正在使用get_all_members()生成器来执行此操作 for member in client.get_all_members(): userName = str(member.name) userGame = str(member.game) userID = str(member.id) print(userName, userGame, userID)
for member in client.get_all_members():
userName = str(member.name)
userGame = str(member.game)
userID = str(member.id)
print(userName, userGame, userID)
await client.send_message(message.channel, "User " + userName + "
(<@" + userID + ">) is playing " + userGame)
如何避免此错误?在循环之前,请尝试列出
获取所有成员的列表
for member in list(client.get_all_members()):
...
发生的情况是,Server
对象将其成员存储在字典中。当您等待
一个协同路由时,您允许其他协同路由在等待时运行,其中一个使服务器
对象保持最新。每当服务器的成员身份更改时,字典也会更改。因为您不应该在某些内容发生更改时对其进行迭代,所以Python会检测到这一点并终止程序
通过先将值读入列表,我们不会注意到字典何时更改
最新版本已经改变了这种行为,我们对此进行了讨论非常感谢!我花了很多时间想弄明白这一点。
for member in list(client.get_all_members()):
...