Python 为啥给函数赋值时,可以传入它的内部函数里?

狂天 · 2022年03月21日 · 最后由 狂天 回复于 2022年03月22日 · 3306 次阅读


如图,上面是函数,下面是函数的调用。
func3 = func1(1)
先给函数 func1 赋值了 1,然后传给 func3。
这里都能看懂,可为啥后面再给 func3 赋值 2 时,直接传入到 func1 的内部函数 func2 里?
我感觉应该还是传入到 func1(a) 里呀,咋就直接进入内部函数中了呢?

最佳回复

func1 最后一行是 return func2,func2 不加括号就是返回 func2 这个函数本体,所以执行 func3 = func1(1) 的时候相当于 func3 = func2,再执行 func3(2) 时等同于执行 func2(2)

python 里函数也是对象,可以用来作为参数传递和赋值,这里贴一个高阶函数的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017328525009056

共收到 4 条回复 时间 点赞

func1 最后一行是 return func2,func2 不加括号就是返回 func2 这个函数本体,所以执行 func3 = func1(1) 的时候相当于 func3 = func2,再执行 func3(2) 时等同于执行 func2(2)

python 里函数也是对象,可以用来作为参数传递和赋值,这里贴一个高阶函数的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017328525009056

frankxii 回复

OKOK,了解了,感觉大佬

恭喜你即将解锁 Python 装饰器😄

buggg 回复

确实在研究 Python 装饰器时候解锁的这个问题😆

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册