文章目录
1 装饰器的定义
1.把一个函数当作参数,返回一个替代版的函数,本质上就是一个返回函数的函数
2.可以在不改变原函数的基础上,给函数增加功能。
示例:增加原函数的功能
def decorate(fun):
def wrapper(*args,**kwargs):
print('Welcome to 2020')
fun()
return wrapper
@decorate
def fun():
print('Hello python!')
fun()
注意:decorate是用于返回wrapper(不带()表示返回函数,带()表示返回运行结果)
2 装饰器的调用方式
示例:计算函数f1的运行时间
import time
def decorator(fun):
def wrapper():
print(time.time())
fun()
return wrapper
def f1():
print('This is a function')
f = decorator(f1)##调用函数
f()
import time
def decorator(fun):
def wrapper():
print(time.time())
fun()
return wrapper
@decorator ###调用装饰器(写在原函数前面)
def f1():
print('This is a function')
f1()
3 处理的原函数中有参数
注意:会先运行装饰器,再运行原函数
示例:计算函数f1的运行时间
def decorator(func):
def wrapper(*args):