Python -- 内部函数 & closure(闭包)

1.内部函数,只能在外部函数内调用,否则出错

>>> def fun1(): #fun2()的外部函数

             print("fun1()被调用...")

                      def fun2(): #fun1()的内部函数

                               print("fun2()被调用..")

             fun2()

>>> fun1()

fun1()被调用...

fun2()被调用..

2.闭包

对象是附加方法的数据,闭包是附加数据的函数。(Objects are data with methods attached, closures are functions with data attached.)

要形成闭包,首先得有一个嵌套的函数,即函数中定义了另一个函数,闭包则是一个集合,它包括了外部函数的局部变量,这些局部变量在外部函数返回后也继续存在,并能被内部函数引用。

>>> def FunX(x):

              def FunY(y):

                     return x * y

              return FunY

>>> g = FunX(8)

>>> g(5)

40

>>>type(g) #g的类型

<class,'function'>

>>> FunX(8)(5)

40

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容