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

装饰器

时间:2019-10-24 19:33:38      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:改变   装饰器   turn   计算   时间   调用   执行时间   ndt   art   

import time
def foo():
print("this is foo")
time.sleep(2)
# foo()

def bar():
print("this is bar")
time.sleep(3)
# bar()

def show_time(f):
def inner():
starttime = time.time()
f()
endtime = time.time()
print("执行时间:%s"%(endtime - starttime))
return inner

# show_time(foo)# 这里虽然计算了时间,但是调用的函数方法发生改变,
# show_time(bar) #之前的是foo,bar,现在是show_time

#给show_time变量赋值
foo = show_time(foo) #这个执行后会执行show_time函数
#这里需要思考下,怎么样在执行foo() 时能再次执行show_time
#这里就需要添加内部函数inner ,把inner的对象地址返回给show_time
#再次执行foo()函数时就是执行的inner(这样就没有改变原本的函数条用方法)
foo()

bar = show_time(bar)

bar()

装饰器

标签:改变   装饰器   turn   计算   时间   调用   执行时间   ndt   art   

原文地址:https://www.cnblogs.com/TKOPython/p/11734174.html

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