Python中闭包和自由变量有何区别?

2026-05-27 18:120阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2176个文字,预计阅读时间需要9分钟。

Python中闭包和自由变量有何区别?

1. 定义+在函数内部再定义一个函数,并使用外部函数的变量(LEGB原则),最后返回新建函数的函数名索引,这样就可以访问到在定义时所在作用域的函数及其变量。

1.定义

在函数内部再定义一个函数,并且这个函数用到了外部函数的变量(LEGB),最后返回新建函数的函数名索引,那么将这样的能够访问其定义时所在的作用域的函数以及用到的一些变量称之为闭包。被引用的非全局变量也称为自由变量 。这个自由变量保存在外部函数的只读属性 __closure__ 中,会与内层函数产生一个绑定关系,也就是自由变量将不会在内存中轻易消失。

阅读全文

本文共计2176个文字,预计阅读时间需要9分钟。

Python中闭包和自由变量有何区别?

1. 定义+在函数内部再定义一个函数,并使用外部函数的变量(LEGB原则),最后返回新建函数的函数名索引,这样就可以访问到在定义时所在作用域的函数及其变量。

1.定义

在函数内部再定义一个函数,并且这个函数用到了外部函数的变量(LEGB),最后返回新建函数的函数名索引,那么将这样的能够访问其定义时所在的作用域的函数以及用到的一些变量称之为闭包。被引用的非全局变量也称为自由变量 。这个自由变量保存在外部函数的只读属性 __closure__ 中,会与内层函数产生一个绑定关系,也就是自由变量将不会在内存中轻易消失。

阅读全文