首页 > 解决方案 > Python:在 elif 阶段使用相同的变量,但最后一部分抛出 XXX 未定义错误

问题描述

其余部分效果很好,但如果最后一行触发,它会抛出NameError: name 'rastolfostr' is not defined错误,rastolfostr已经在 if elif 语句之前设置,但是这里是代码

    @client.event
async def on_message(message):
    lowcasemsg=message.content.lower()
    if lowcasemsg.startswith('.astolfo'):
       rasfolto=random.randint(1, 100000000)
       rasfoltostr=str(rasfolto)
       if lowcasemsg.startswith('.astolfo nsfw'):
         astolfolink=apibase + 'from=astolfo&nsfw=1&img=' + rasfoltostr
       elif lowcasemsg.startswith('.astolfo sfw'):
         astolfolink=apibase + 'from=astolfo&nsfw=0&img=' + rasfoltostr
       elif lowcasemsg.startswith('.astolfo mix'):
         astolfolink=apibase + 'from=astolfo&nsfw=2&img=' + rasfoltostr
       else:
         astolfolink=apibase + 'from=astolfo&nsfw=0&img=' + rastolfostr
    await message.reply (astolfolink, mention_author=False)

我打算检查其他 3 个,如果没有,给最后一个是 sfw。

如果最后一个触发了,就会发生这种情况,其余的都是有效的 终端截图

标签: pythonpython-3.x

解决方案


叹息,您分配的变量名称-> rasfoltostr(不是rastolfostr)。下次请注意细节


推荐阅读