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