首页 > 其他 > 详细

关于语法糖参数的实现

时间:2020-06-07 09:31:36      阅读:55      评论:0      收藏:0      [点我收藏+]

首先关于装饰器

 

1。装饰器的功能实现

import time
def timmer(func):
def wrapper():
start_time=time.time()
res = func()
stop_time=time.time()
print(‘程序运行时间%s‘%(stop_time-start_time))
     return res
return wrapper

@timmer#test=timmer(test)
def test():
time.sleep(3)
print(‘test函数运行完毕‘)

test()

以上是最简单的装饰器,实现了函数参数返回值的装饰

增加一个装饰功能(计算运行时间)

2。如何在语法糖传参实现装饰器的附加功能

import time


def timer():
return time.time()


def space_outer(x,*y):
def outer(func):
def inner(*args, **kwargs):
start_time = x()
res = func(*args, **kwargs)
stop_time = x()
print(‘%s程序运行时间%s‘ % (y,(stop_time - start_time)))
return res

return inner

return outer


@space_outer(timer,‘china‘,‘shanghai‘)
def test():
time.sleep(3)
print(‘test函数运行完毕‘)

可以发现,我在语法糖上增加一个参数,使得整个装饰功能得到增强,同样是测试运行时间,新的功能运行更加清晰明了,且可以举一反三

关于语法糖参数的实现

原文:https://www.cnblogs.com/vincent-sh/p/13058568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!