函数变量的链式传递
来源:11-15 我先用非闭包解决一下
一个小慕标
2021-04-15
origin = 20
def go(step):
new_pos = origin + step
origin = new_pos
return new_pos
print(go(2))
函数顺序执行到函数第二行不是应该先获取函数外面那个全局的origin吗,怎么会先知道了没定义origin报错,也没有提前编译呀
写回答
2回答
-
weixin_慕数据2566294
2021-04-17
origin在你的代码里是局部变量,属于未定义先引用。
根据老师讲的变量查找顺序,会先在函数里查找,找不到才会去全局查找。
你的找到了,属于未定义先引用
10 -
码农Tiger
2023-02-03
python是顺序执行,到def函数的时候会进行代码检查,会将origin认为是局部变量。接着后边执行报错
00
相似问题