代码如下:
from functools import wraps #从functools库导入wrapsdef decorate1(func): #定义函数decorate1,参数是func @wraps(func) #使用wraps进行装饰,装饰的参数是func def wrapper(*args,**kwargs): #定义wrapper函数,参数是*args,**kwargs,即所有的数据都是参数 lens=len(args)+len(kwargs) #定义参数的长度,并赋值给lens print(func.__name__+"参数个数是:{}个".format(lens)) #打印函数func的名字,参数个数是lens个 return func(*args,**kwargs) #返回func函数,参数是*args,**kwargs return wrapper #返回wrapper函数@decorate1 #使用decorate1函数对下面的函数进行装饰def sum2(x,y): #定义sum2函数,参数是x,y print(x+y) #打印x+y的值sum2(11,21) #调用sum2函数的值,参数是11,21@decorate1 #使用decorate1函数对下面的函数进行装饰def printf(name,age,love): #定义printf函数,参数name是名字,age是年龄,love是爱好 print(name+str(age)+"岁,喜欢"+love) #打印name年龄多少岁,喜欢什么爱好printf("张三",30,"骑马") #调用printf函数,参数是张三,30,骑马
代码运行结果如下:
sum2参数个数是:2个
32
printf参数个数是:3个
张三30岁,喜欢骑马
图片示例如下: