Python:在elif阶段使用相同的变量,但最后一部分抛出XXX not defined错误

Python:在elif阶段使用相同的变量,但最后一部分抛出XXX not defined错误,python,python-3.x,Python,Python 3.x,其余部分工作良好,但 如果最后一行被触发,它将抛出NameError:name'rastolfostr'未定义error,rastolfostr已在if-elif语句之前设置,但下面是代码 @client.event async def on_message(message): lowcasemsg=message.content.lower() if lowcasemsg.startswith('.astolfo'): rasfolto=random.ra

其余部分工作良好,但 如果最后一行被触发,它将抛出
NameError:name'rastolfostr'未定义
error,
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

如果最后一个触发,则会发生这种情况,其余的都是工作

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

请提供预期见。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。我们希望有一个最小的问题工作示例,包括跟踪内部操作的适当代码。您发布的代码没有运行;这是未调用的函数的定义。不接受场外链接和文本图像;您的帖子必须是独立的,符合本网站的目的。我们还希望您在错误点之前跟踪可疑值。此外,如果
lowcasemg.startswith('.astolfo'):
不为true,则不会定义后续变量。