装饰器

1.高阶函数定义

a.函数接收的参数是一个函数名

def foo():
time.sleep(2)
print('hello')
def test(func):
print(func)
start_time=time.time()
func()
stop_time=time.time()
print('running %s'% (stop_time-start_time))
test(foo)

b.不改变函数的调用方式

def foo():
print('from the foo')

def test(func):
return func
foo=test(foo)
foo()
c.闭包
def father(name):
# print('from father %s'% name)
def son():
# name='kevin_1'
print('my father is %s'% name)
def grandson():
print('my yeye is %s' % name)
grandson()
# print(locals())
son()
father('kevin')

装饰器
def timmer(func):  #func=test
def wrapper():
start_time=time.time()
func() #test()
stop_time=time.time()
print('runing time %s' %(stop_time-start_time))
return wrapper
def test():
time.sleep(2)
print('running')
test=timmer(test) #test=wrapper
test() #wrapper()
装饰器return test
def timmer(func):  #func=test
def wrapper():
start_time=time.time()
res=func() #test()
stop_time=time.time()
print('runing time %s' %(stop_time-start_time))
return res
return wrapper
@timmer #test=timmer(test) test=wrapper
def test():
time.sleep(2)
print('running')
# test() #wrapper()

res=test() #test
print(res)

 函数加参数


def timmer(func):
def wrapper(*args,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
stop_time=time.time()
return res
return wrapper
@timmer
def func(*args,**kwargs):
time.sleep(2)
print('%s,%s'%(args,kwargs))
return 1234

func('kevin',19,age=19)

转载于:https://www.cnblogs.com/wrw202/p/9631593.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值