装饰器本质是函数,它不改变被装饰的函数的源代码以及调用方式。
实现装饰器
1.函数即变量
2.高阶函数
3.嵌套函数 在函数体内声明函数
函数内部变量为局部变量
def foo():
x=1
def bar():
x=2
print(x)
def bar2():
x = 3
print(x)
bar2()
bar()
foo()
2
3
高阶函数+嵌套函数=》装饰器
变量:引用次数
如果引用次数为0,则从内存中回收该变量
匿名函数:没有函数名,只有函数体
cal = lambda x:x*3
print(cal(2))