您的位置:首页 > 编程语言 > Python开发

Python在嵌套函数内部访问并父级函数的变量

2014-09-01 17:13 253 查看
主要来自stackoverflow上的解答http://stackoverflow.com/questions/6198709/how-do-i-change-nesting-functions-variable-in-the-nested-function

def accessVarFromNestedFunc():
localVarInParent = [1]; #here just define a list, first value is what we want to use

def nestedFunc(): #
localVarInParent[0] = localVarInParent[0] + 1 ; # localVarInParent[0] is the first value of above list value: localVarInParent, and its initial value is 1
print "In nested func, localVarInParent[0]=",localVarInParent[0];#2,3,4,5,6

for i in range(5):
nestedFunc();
# here can got value is 6, which is changed after nested function
print "In current parent nesting func, localVarInParent[0]=",localVarInParent[0]; #In current parent nesting func, localVarInParent[0]= 6

if __name__ == "__main__":
accessVarFromNestedFunc();


也即:

Python中,嵌套函数内部去操作被嵌套的父级函数中的变量的话:

Python 2.x:把变量弄进一个列表中的第1个值,index=0,然后就可以在嵌套函数中,获得该list列表变量,操作其中第1个值了。

Python 3.x:把变量定义为nonlocal即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: