python代码中的变量范围

时间:2016-09-24 08:51:06

标签: python python-2.7 scope

from sys import exit

def gold_room():
    print "This room is full of gold.  How much do you take?"

    choice = raw_input("> ")
    if "0" in choice or "1" in choice:
        how_much = int(choice)
    else:
        dead("Man, learn to type a number.")
    if how_much < 50:
        print "Nice, you're not greedy, you win!"
        exit(0)
    else:
        dead("You greedy bastard!")

def dead(why):
    print why
    exit(0)

1)如果dead方法的定义低于调用语句,gold_room方法如何在dead方法中调用?

2)变量how_much如何在其范围之外访问?它在缩进块中声明并初始化 -

 if "0" in choice or "1" in choice:
        how_much = int(choice)

根据我的理解,其范围应在此块中结束。那么在这种情况下如何进一步使用它 - if how_much < 50

1 个答案:

答案 0 :(得分:1)

没有&#34;死了&#34; Python内置的方法。解释器告诉你它没有被定义的原因是你没有定义它。

Python没有块范围。函数内定义的变量从该点开始可见,直到函数结束。

在第一个问题发生更改后进行编辑只要这些函数在调用时定义,函数的定义就不重要了 EM>。据推测,在定义了两个函数之后,在该模块的末尾有一些代码调用gold_room