Python(二):装饰器

原文链接:https://www.cnblogs.com/huangjm263/p/8136387.html

装饰器的本质:一个闭包函数

装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展


import time
def func1():  #被装饰的函数
    print('in func1')
def timmer(func):  #装饰器函数
    def inner():
        start = time.time()
        func()
        end = time.time()
        print(end - start)        
    return inner
func1 = timmer(func1)
func1()


import time
def timmer(func):  #装饰器函数
    def inner():
        start = time.time()
        func()
        end = time.time()
        print(end - start)
    return inner
@timmer   #语法糖   @装饰器函数名    #==> func1 = timmer(func1)
def func1():  #被装饰的函数
    print('in func1')
func1()
import time
def timmer(func):
    def inner(m):
        start = time.time()
        func(m)
        end = time.time()
        print(end - start)
    return inner
@timmer  #===>func1 = timmer(func1)
def func1(a):
    print(a)
func1(5)

import time
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.1)
    print('hello world')
    return '新年好'
# func = timmer(func)
ret = func()
print(ret)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值