闭包:函数可以作为另一个函数的参数或返回值,可以赋给一个变量
即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包
def hanshu(a):
def qiantao():
return
return qiantao
其中a作为参数传给qiantao,qiantao的return再作为参数传给hanshu,但是hanshu的return就是qiantao
装饰器
# #方法1 # def diguo(): # print("底锅50") # return 50 # def doupi(f): # print("豆皮10块") # def funx(): # return 10+f() # return funx # def xiangcai(f): # print("香菜5块") # def funy(): # return 5+f() # return funy # result=xiangcai(xiangcai(doupi(diguo))) # print(result()) # # # 方法2 # # def doupi(f): # def caidan1(): # print("豆皮10块") # return 10+f() # return caidan1 # def xiangcai(f): # def caidan2(): # print("香菜5块") # return 5+f() # return caidan2 # @doupi # @xiangcai # @xiangcai # def diguo(): # print("底锅50") # return 50 # x=diguo() # print(x)
其中result=xiangcai(xiangcai(doupi(diguo)))等同于@doupi@xiangcai@xiangcai