0

我有一个大函数,里面嵌套了几个函数,如下:

def primary(input):

    def second():
        print "something"

    def third():
        treasure = "Success!"
        print treasure

第三个()函数定义了宝藏变量并打印它。我应该如何更改此变量的范围,以便我可以从解释器打印宝藏而无需调用任何函数,但仍允许函数访问/更改它?

4

2 回答 2

3

您必须使其成为全球性的;函数中的局部变量不可访问、嵌套或其他方式。

只需作为全局访问就可以了: treasure

treasure = "Success!"

def primary(input):
    def second():
        print "something"

    def third():
        print treasure

treasure在函数范围内更改,请使用global关键字将其声明为全局。

treasure = "Success!"

def primary(input):
    def second():
        print "something"

    def third():
        global treasure
        treasure = 'changed!'
        print treasure

    third()
于 2013-07-05T21:25:29.797 回答
0

如果函数 third() 在宝藏前添加关键字“全局”。这允许其他函数使用该变量。

还有另一种方法,即在代码开头定义 var ,这看起来好多了,这也是我学会如何做到这一点的方式。

treasure = "Success!"

def second():
    print "Something."

def third():
    print treasure

third()

祝你好运。

于 2013-07-05T21:35:15.377 回答