码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2021-02-01 12:54:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:top   print   rom   就是   检测   lang   定义   code   app   

准备内容:*args, **kwargs
在形参中的作用:
	*args把多余的参数汇总成元组的形式存起来
	**kwargs把多余的参数汇总成字典的形式存起来

在实参中的作用:
	*args,*后面的内容打散成位置实参
	**kwargs,**后面的内容打散成关键字实参

形参是汇总,实参是打散
  • 名称空间的‘嵌套‘关系是在函数定义阶段,即检测语法的时候确定的
import time 

def func(x,y,z):
	print(‘%s %s %s‘ %(x,y,z)

def timer(func):
	def wrapper():
		start_time = time.time()
		res = func()
		stop_time = time.time()
		pritn(‘run time is %s‘ %(stop_time - start_time))
		return res
	return wrapper
  • 有参装饰器
import time
def timer(func):
	def wrapper(*args,**kwargs):
		start_time = time.time()
		res = func(*args,**kwargs)
		stop_time = time.time()
		print(‘run time is %s‘ %(stop_time - start.time)
		return res
	return wrapper

@timer
def insex():
	pass

有参装饰器本质上就是在原来装饰器的基础上再包一层函数

from functools import wraps

def timer(func):
	@wraps(func)
	def wrapper(*args,**kwargs):
		start_time = time.time()
		res = func(*args,**kwargs)
		stop_time = time.time()
		print(‘run time is %s‘ %(stop_time - start_time)
		return res
	return wrapper

装饰器

标签:top   print   rom   就是   检测   lang   定义   code   app   

原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14353173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!