python装饰器简单介绍

装饰器的作用:在函数执行前或执行后执行一段代码做一些通用处理
与直接在函数中写代码相比,优点在于可复用
调用形式为函数前@名字

@dec
def f(i):

装饰器运行逻辑:
系统看到装饰器,将不调用原函数
调用装饰器函数,将原函数作为参数传入
此函数返回一个函数,系统执行返回的函数(有意思的地方来了 返回的函数可以不包括原函数,也就是让调用原函数指令失效)
同时系统将把原函数的参数赋予给返回的函数

代码示例
原函数接受一个参数
装饰器接受原函数 返回一个函数

功能:返回的函数中输出接受到的参数 把其中一个参数再传给原函数执行
*a替代不定长普通参数 重点在* 可以是*b *c
a是一个元组 此示例中=(1, 2, 3)

**b替代不定长参数 重点在**
b是一个字典 此示例中={'a': 1, 'b': 2}

import time
def dec(f):
    def wrap(*a,**b):
        s=time.time()
        for i in a:
            print(i,end=' ')
        for i in b:
            print('{}:{}'.format(i,b[i]))
        f(a[0])
        print('spend:{}'.format(time.time()-s))
    return wrap
@dec
def f(i):
    print('函数参数{}'.format(i))
    time.sleep(0.5)
f(1,2,3,a=1,b=2)
posted @   caiusxin  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示