闭包:一个函数中嵌套另外一个函数的定义 且内部的函数会用到外部函数的变量
def line(k,b):
def create_y(x):
print(k*x+b)
return create_y
myline = line(1,2)
myline(1)
myline(2)
myline = line(11,22)
myline(1)
myline(2)
闭包和面向对象:闭包占用空间少,相当于面向对象的创建的实例对象
装饰器/修饰器:在不改变原函数代码的情况下 对原函数的功能做修改
def set_func(func):
def call_func():
print("测试数据1")
func()
print("测试数据2")
return call_func
@set_func # 等价于 test1 = set_func(test1)
def test1():
print("---------test1-----------")
test1()