UnboundLocalError: local variable 'guild' referenced before assignment

UnboundLocalError: local variable 'guild' referenced before assignment

我想做一些事情,以便当脚本启动时,它会获取有关公会成员的信息,例如 id、公会 ID。

我有这个代码:

    async def on_ready(self):
        for guild in guild:
            for member in guild.members:
                values = {
                    "_id":member.id,
                    "guild_id":guild.id,
                    "warns": 0 ,
                    "reasons": []
                }
                server_values = {
                    "_id": guild.id,
                    "case": 0
                }
                if collusers.count_documents({"_id": member.id, "guild_id": guild.id}) == 0:
                    collusers.insert_one(values)    
                if collservers.count_documents ({"_id": guild.id}) == 0:
                    collservers.insert_one(server_values)

但是我也得到一个错误:

Ignoring exception in on_ready
Traceback (most recent call last):
  File "C:\Users\Andriyko\AppData\Local\Programs\Python\Python310\lib\site-packages\nextcord\client.py", line 351, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Andriyko\Desktop\Ghostbot\modules\warn.py", line 18, in on_ready       
    for guild in guild:
UnboundLocalError: local variable 'guild' referenced before assignment

您没有为变量 guild 分配任何内容。您可以获得您的机器人所在的所有 guilds

for guild in self.client.guilds:

你也可以先获取公会对象(如果你想运行它只为一个公会):

guilds = client.get_guild(id)

for guild in guilds:
    ...

此外,请记住您必须启用 intents.Members 才能获得 guild.members