python - 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。
如果最后一个触发了,就会发生这种情况,其余的都是有效的
解决方案
叹息,您分配的变量名称-> rasfoltostr(不是rastolfostr)。下次请注意细节
推荐阅读
- javascript - 如何将包含 npm 下载包的网站部署到浪涌/gh-pages?
- python - 如何在python中的两个函数之间传递一个数组?
- c++ - CMake 不包含/嵌入链接库
- javascript - 如何在 Cheerp(C++ 到 JavaScript 转译器)中保留变量名
- hadoop - mapreduce.job.running.reduce.limit 和 mapred.reduce.tasks 有什么区别
- laravel - Laravel 测试 | Laravel Artisan 命令中的模拟对象
- junit - 排除故障保护中的所有类别
- java - 如何设置动态填充的多级下拉框表单?
- angular - 通过量角器自动化上传文件时,UI 上出现“会话过期错误”。我正在使用“sendKeys”上传文件
- vba - 如何设置电子邮件的发送地址?