Python闭包核心

python_closure_core
python_closure_core

简单的说python闭包(python closure)的核心只有两点:
1. 内部函数,就是说在一个函数内部定义了另一个函数
2. 内部函数引用了外部函数的成员变量(必须是成员变量,不能是全局变量)
特性:
看下面的例子:

# coding=utf-8def outer(i):    def inner(j):        print('inner is:',j)        return i+j    return innert1 = outer(10) # outer参数i被赋值10print('-'*20)print('t1 is:',t1) # t1是一个对象print('-'*20)t2 = t1(20) # inner参数j被赋值20print('-'*20)print('t2 is:',t2) # 获得outer的返回值

起输出结果如下:

--------------------t1 is: .inner at 0x000000A757BBFA60>--------------------inner is: 20--------------------t2 is: 30

得出结论:
1. t1 = outer(10)这句没有任何输出,说明inner没有被执行,所以无输出
2. t2 = t1(20) 这句执行后inner被执行,因此有了inner is: 20
3. t2的返回值为outer的返回值。

About 歇歇脚|Java|Linux 1036 Articles
歇歇脚元老