一.准备知识
1.函数作用域 : 由内到外优先级减小 【L(嵌套函数定义的变量)_E(函数内定义的变量)_G(全局变量)_B(系统默认定义变量)】
2.高阶函数 :(1) 函数名可以作为参数输入
(2) 函数名可以作为返回值
3.闭包: 在一个内部函数里,对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。
二.概念
装饰器是个函数,它是为其他函数增加功能用的。
import time # 装饰器函数 //给f1,f2函数加上显示函数运行时间的功能 def logger(kal=""):#添加装饰器参数 def show_time(f): def inter(*x,**y): start=time.time() f(*x,**y) end=time.time() print("spand %s"%(end-start)) if kal=="ture": print("打印日志") return inter return show_time @logger("ture") # @show_time#f1=show_time(f1) def f1(): print("f1 time") time.sleep(2) @logger() # @show_time def f2(): print("f2 time") time.sleep(3) @logger("ture") # @show_time def f3(*a,**b):#加任意参数都可以 s=0 for i in a: s+=i print(s) time.sleep(1) f3(1,2,3,5,7) f1() f2()