闭包
总共三句话:
1、在一个外函数中定义了一个内函数
2、内函数里运用了外函数的临时变量
3、外函数的返回值是内函数的引用
以上,就构成了一个闭包。
多装饰器调用顺序
# coding:utf8
import functools
def login1(func):
@functools.wraps(func)
def inner(*args, **kwargs):
print('----login1_1------')
ret = func(*args, **kwargs)
print('----login1_2------')
print(ret)
return ret
return inner
def login2(func):
@functools.wraps(func)
def inner(*args, **kwargs):
print('----login2_1------')
ret = func(*args, **kwargs)
print('----login2_2------')
return ret
return inner
@login1
@login2
def test(t):
print('t = ', t)
return 'aaa'
test(1)
运行结果:
----login1_1------
----login2_1------
t = 1
----login2_2------
----login1_2------
aaa