我有一个大函数,里面嵌套了几个函数,如下:
def primary(input):
def second():
print "something"
def third():
treasure = "Success!"
print treasure
第三个()函数定义了宝藏变量并打印它。我应该如何更改此变量的范围,以便我可以从解释器打印宝藏而无需调用任何函数,但仍允许函数访问/更改它?
我有一个大函数,里面嵌套了几个函数,如下:
def primary(input):
def second():
print "something"
def third():
treasure = "Success!"
print treasure
第三个()函数定义了宝藏变量并打印它。我应该如何更改此变量的范围,以便我可以从解释器打印宝藏而无需调用任何函数,但仍允许函数访问/更改它?
您必须使其成为全球性的;函数中的局部变量不可访问、嵌套或其他方式。
只需作为全局访问就可以了: 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()
如果函数 third() 在宝藏前添加关键字“全局”。这允许其他函数使用该变量。
还有另一种方法,即在代码开头定义 var ,这看起来好多了,这也是我学会如何做到这一点的方式。
treasure = "Success!"
def second():
print "Something."
def third():
print treasure
third()
祝你好运。