python 装饰器

Posted iswuyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 装饰器相关的知识,希望对你有一定的参考价值。

装饰器的主要功能:

在不改变函数调用方式(不改变原函数)的基础上在函数的前,后添加功能

装饰器的固定格式

def timmer(func):
    def inner(*args,**kwargs):
        set = func(*args,**kwargs)
        return set
    return inner  # 传内部函数的名称,不能加括号


@timmer  # @装饰器函数名   # func = timmer(func)
def func(*args,**kwargs):  # 被装饰器函数
    time.sleep(0.01)
    print(大家好)


ret=func()
print(ret)

带参数的装饰器

def outer(flag):
    def one(func):
        def two(*args,**kwargs):
            if flag:
                print(‘‘‘执行之前‘‘‘)
            ret= func(*args,**kwargs)
            if flag:
                print(‘‘‘执行之后‘‘)
            return ret
        return two
    return one

@outer(False)
def func():
    print(111)

func()

多个装饰器装饰一个函数

def wrapper1(func):
    def inner():
        print(wrapper1 ,before func)
        func()
        print(wrapper1 ,after func)
    return inner

def wrapper2(func):
    def inner():
        print(wrapper2 ,before func)
        func()
        print(wrapper2 ,after func)
    return inner

@wrapper2
@wrapper1
def f():
    print(in f)

f()

 

以上是关于python 装饰器的主要内容,如果未能解决你的问题,请参考以下文章

[TimLinux] Python 装饰器

python装饰器

python装饰器关键代码

Python装饰器

python之装饰器

python 装饰器