Python-如何实现闭包函数

 时间:2024-10-14 11:08:30

1、外部函数返回内部函数的函数名:def out_2(): a=2 def inner_2(): b = 5 return a*b return inner_inner=out_2()print(inner)---<function out_2.<locals>.inner_2 at 0x000001949CDD4730>输出的是内部函数内存地址。

Python-如何实现闭包函数

3、为了更逼真,可以将变量名写成与内部函数名相同,就会变成和内部函数一样的效果,inner_2()def out_2(): a=2 def inner_2(): b = 5 return a*b return inner_2inner_2=out_2()print(inner_2())此时的inner_2()和out_2()同处在全局域Global内。这个inner_2就是个闭包函数。

Python-如何实现闭包函数

5、可以通过一个函数的特殊属性__closure__来验证。__closure__是一个内存地址的特殊属性,返回的是个元组,包含内部挣窝酵聒函数调用的嵌套域的变量地址。可以用cell_contents来查看这些变量值。例如:def myOut(): a=20 b=50 e=60 def myInner(): c = 30 return a+b+c return myInnermyInner=myOut()a=myInner()print(myInner.__closure__)(<cell at 0x00000287C449E8E8: int object at 0x00007FF957AC64F0>,<cell at 0x00000287C449E948: int object at 0x00007FF957AC68B0>)print(myInner.__closure__[0].cell_contents)---返回a的值20。print(myInner.__closure__[1].cell_contents)---返回b的值50.并没有返回e的值,说明__closure__仅仅返回了被引用的变量的值。

Python-如何实现闭包函数
  • css设置字母大小写
  • jquery如何给表格首行添加背景颜色
  • Winform怎样调整按钮上的显示文字?
  • css3设置字体阴影
  • SQL如何查询选了计基并且及格的学生
  • 热门搜索
    镜子对着床有什么说法 essence是什么意思 hot是什么意思 什么是ie浏览器 阿莫西林胶囊的作用 玩王者荣耀用什么手机 取缔的意思 支那人什么意思 昂是什么意思 航母的作用