最近我一直在创造一个游戏,但我遇到了问题.为了计算你对敌人的击中,它使用变量剑.
此时玩家可能购买或未购买过剑,因此我收到一条错误消息:"未声明的变量".有没有办法解决尚未声明的变量?
你有两个选择.
首先是确保玩家总是有一个sword变量.None在玩家获得剑之前将其设置为,当您需要知道玩家是否拥有剑时,请检查变量是否为None:
sword = None
# do lots of stuff here
if sword is None:
print 'Hey, no sword!'
else:
print 'Chop, chop, chop!'
Run Code Online (Sandbox Code Playgroud)
如果剑不允许为空字符串或整数值为0,则写入此方法的另一种方法是:
if sword:
print 'Chop, chop, chop.'
Run Code Online (Sandbox Code Playgroud)
你的第二个选择是在try块中包含对sword变量的每个引用,并吞下可能引发的NameError:
try:
if sword == 10:
print 'Choppity chop chop chop.'
except NameError:
pass
Run Code Online (Sandbox Code Playgroud)
第一种解决方案(更好).