Hoppy 伸进黑暗中想要抓住传说中的暗影披风。但他的手直接穿了过去。
“那是幻象,”守门人低语道,“如果未曾踏上那条路,宝藏便不存在。”
存在先于本质
在 Python 中,如果一行代码被跳过(例如,在一个判断为 False 的 if 语句内部),
它就从未发生过。在该被跳过的代码块中定义的任何变量都从未被创建。
试图使用一个不存在的变量会导致 NameError。
if False: ghost = "Boo!" print(ghost) # 报错!'ghost' 未定义。
1
NameError 错误
运行代码。你会看到一个 NameError,因为 shadow_cloak 定义在一个被跳过的 if 代码块中(因为 is_night 是 False)。
2
两个方案
要修复这个问题,你有两个选择:
- 将条件改为
True,让代码块执行。 - 或者,在
if语句之前或外部定义shadow_cloak,确保它总是存在。
3
目标
确保 Hoppy 能穿上披风!
高级技巧想更进一步?点击展开点击收起
这是一个好习惯:在函数或脚本的顶部初始化变量,通常赋予默认值如 None、"" 或 0。
这确保了无论代码在你的 if/else 迷宫中走了哪条路,当你稍后试图使用该变量时,它总是存在的。
pymain.py
Loading...
终端输出
Terminal
Ready to run...