Python函数(九)-装饰器(二)
2024-08-28 23:22:13
如果给被装饰器装饰的函数传递参数的话,需要在装饰器里修改
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" import time def timer(func):
def deco(n): #需要在此处设置形参
start_time = time.time()
func(n)
stop_time = time.time()
print("the run time is %s"%(stop_time-start_time))
return deco @timer
def test1(name):
time.sleep(3)
print('My name is %s'%name) test1('John')
运行结果
但是有两个或者多个被装饰的函数需要传递参数的话,这种情况就不太方便了
所以可以直接用*args和**kwargs,不管被装饰的函数有几个,传递的参数有多少,不管是什么类型的参数
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" import time def timer(func):
def deco(*args,**kwargs): #需要在此处设置形参
start_time = time.time()
func(*args,**kwargs)
stop_time = time.time()
print("the run time is %s"%(stop_time-start_time))
return deco @timer
def test1(name,age):
time.sleep(3)
print('My name is %s and my age is %s'%(name,age)) @timer
def test2(name,language,city):
time.sleep(1)
print('%s is studying %s in %s'%(name,language,city)) test1('John',22)
test2('Jack',city='beijing',language='Chinese')
运行结果
最新文章
- Begin :SWIFT 基本语法
- javascript 设计模式-----外观模式
- TortoiseSVN文档
- HTTP笔记:URI与URL
- Linux 设置系统时间和日期 API
- Regularized Linear Regression with scikit-learn
- 桌面环境与桌面搜索Desktop Search tools
- JS基础函数
- React 从0开始 消息传递
- linux 使用sudo开放普通用户权限
- POJ2584 T-Shirt Gumbo【二分图多重匹配】
- Android studio怎么创建shape的XML文件
- 【转】10 条提升 Android 性能的建议
- SQL Server 常用操作XML
- JS框架设计读书笔记之-选择器引擎01
- 题解 P4783 【【模板】矩阵求逆】
- JSONObject、JSONArray、Map、JavaBean的相互转换
- 【托业】【新托业TOEIC新题型真题】学习笔记13-题库四-P7
- Logging from multiple processes using log4net
- Javascript - Vue - 指令