day10 -(2)num装饰器 补充

初级实现:

import  time
def func():
    start=time.time();
    print("Hello Boss!!")
    time.sleep(5)
    end=time.time();
    print(end-start)
func()

优化+

import  time
def timmer(f):
    start=time.time();
    f()
    end=time.time();
    print(end-start)
def func():
    time.sleep(5)
    print("Hello Boss!!")
timmer(func)

师傅在优化

import  time
def timmer(f):
    def ium():
        start=time.time();
        f()
        end=time.time();
        print(end-start)
    return ium
def func():
    time.sleep(5)
    print("Hello Boss!!")
func=timmer(func) #内存地址做赋值 正常
func()

改写成 语法糖模式

import time
#语法糖

def timmer(f):
    def ium():
        start=time.time();
        f()
        end=time.time();
        print(end-start)
    return ium
@timmer  #func=timmer(func) 装饰器函数名
def func():  #被装饰的函数
    time.sleep(5)
    print("Hello Boss!!")
 #内存地址做赋值 正常
func()

再次优化 比丘兽

import time
# print(time.time()) # 获取当前时间
# time.sleep(10)  #让程序在执行到这个位置的时候停一会儿


def timmer(f):    #装饰器函数
    def inner():
        start = time.time()
        ret = f()       #被装饰的函数
        end = time.time()
        print(end - start)
        return ret
    return inner
#
@timmer         #语法糖 @装饰器函数名
def func():     #被装饰的函数
    time.sleep(0.01)
    print('老板好同事好大家好')
    return '新年好'
# func = timmer(func)
ret = func()   #inner()
print(ret)
##

没拿到返回值

def outer(): 
  def inner():
        return 'inner'
  inner()
outer()  #返回none
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值