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 @ 2022-05-08 23:00  caiusxin  阅读(35)  评论(0)    收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css