函数变量的链式传递

来源: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在你的代码里是局部变量,属于未定义先引用。

根据老师讲的变量查找顺序,会先在函数里查找,找不到才会去全局查找。

你的找到了,属于未定义先引用

1
0

码农Tiger

2023-02-03

python是顺序执行,到def函数的时候会进行代码检查,会将origin认为是局部变量。接着后边执行报错

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程