def user():
global name
name = raw_input("Whats your name?")
def jungle():
print name, "Please, Select your Enemy"
print '\n'.join(jungle_enemy)
enemy = raw_input('> ')
if enemy == "1":
print "The Lion Will eat you alive."
game_over()
exit_countdown()
elif enemy == "2":
print "The Jaguar will tear you apart."
game_over()
exit_countdown()
elif enemy == "3":
print "The Snake will eat you whole."
game_over()
exit_countdown()
else:
try_again("Are You Noob? \nNone of the Choice!")
jungle()
当我运行此代码时。它给了我一个错误。 NameError:未定义全局名称'name'。
答案 0 :(得分:2)
一般来说,全局变量是一个坏主意。最好将变量传递给任何需要它的人:
def user():
return raw_input("Whats your name?")
def jungle(name):
print name, "Please, Select your Enemy"
# etc.
然后调用这样的函数
username = user()
jungle(username)
如果您 使用全局名称,则需要在使用该变量的所有函数中使用global
语句 - 因此您需要在{\ n}添加global name
jungle()
的开头。但不要这样做。查看全局变量采用JavaScript的位置 - 您不希望在Python中执行此操作。