Python_装饰器

【是什么】

不改变原函数的情况下,在函数前后增加一些内容  即装饰器。如计算函数的运行时间

装饰器的主要结构

def 外层函数(参数):
    def 内层函数(*arg, **kwargs):
        return 参数(*arg, **kwargs)
    return 内层函数

装饰器的使用

@装饰器外层函数名
def 被装饰的函数名():
    函数内容

@装饰器名称  两个作用

1. 将下面的函数当做参数传入装饰器函数中
2. 将装饰器函数的返回值重新复制给下面的函数

示例

def func(fun):
    def inner():
        print('before')
        v = fun()
        print('after')
        return v
    return inner
@func
def fun1():
    print(123)

执行 fun1 其实是执行了装饰器内部的inner函数,inner函数内部包含了fun1函数,同时在fun1函数前后增加了需要的内容

 

 当遇到多函数需要执行相同操作时,可以考虑装饰器,能够不改变函数自身,同时增加需要的内容,后期也方便维护

 

posted on 2019-10-04 09:29  wangxiaobei2019  阅读(204)  评论(0编辑  收藏  举报

导航