python嵌套函数作用域怎么解释

查看:70
本文介绍了python嵌套函数作用域怎么解释的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

直接上代码

def l(list):
    def d():
        return list
    return d
    
 #运行
l = l([1,2,3,4])
print l()

这个情况是正常的。

问题在于d函数为什么不能传入list,然后我现在尝试了一下这个代码:

def l(list):
    def d(list):
        return list
    return d
 
#运行
l = l([1,2,3,4])
#提示错误
print l()

#正常
print l([1,3,5,7,9])

请问这个怎么解释呢?
我个人理解的是,类似于继承的情况,当d函数没有参数传入的情况上,基于父函数的参数,当他需要传参了,就覆盖了???

解决方案

看看LEGB原则,就会明白是怎么回事。
https://zhuanlan.zhihu.com/p/...

运行

l = l([1,2,3,4])

提示错误

print l() 这个错误是你没有传参数。

这篇关于python嵌套函数作用域怎么解释的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆