装饰器

装饰器:装饰别人的工具,修饰添加功能,工具指的是函数

装饰器本身可以是任何可调用对象,被装饰的对象也可以是任意可调用对象。

为什么要用装饰器:

  开放封闭原则:对修改是封闭的,对扩展是开放的

  装饰器就是为了在不修改被装饰对象的源代码以及调用方式的前提下,为期添加新功能

复制代码
import time

def timmer(func):
    def wrapper(*args,**kwargs):
        start_time=time.time()
        res=func(*args,**kwargs)
        stop_time=time.time()
        print('run time is %s' %(stop_time-start_time))
    return wrapper

@timmer
def index():

    time.sleep(3)
    print('welcome to index')

index()
复制代码
复制代码
#!/usr/bin/python
# -*- coding:utf-8 -*-

#流程分析
import time
def timmer(func):
    def wrapper():
        start_time=time.time()
        func()
        stop_time=time.time()
        print('run time is %s' %(stop_time-start_time))
    return wrapper

@timmer #index=timmer(index)
def index():
    time.sleep(3)
    print('welcome to index')

index() #wrapper()
复制代码

 

posted @   逆风飞翔的博客  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示