python函数使用装饰器

阅读 57

2022-05-01

def wrapper(f):  # 装饰器函数,f是被装饰的函数
    def inner(*args, **kwargs):
        '''在被装饰函数之前要做的事'''
        print(args)
        ret = f(*args, **kwargs)  # 被装饰的函数
        print(kwargs)
        '''在被装饰函数之后要做的事'''
        return ret
    return inner
def fun(a,b,c,k,m):
    return a+1
print(wrapper(fun)(2,6,9,m=6,k=1))

输出:

(2, 6, 9)
{'m': 6, 'k': 1}
3

使用符号简化表达,进行自动封装:

def wrapper(f):  # 装饰器函数,f是被装饰的函数
    def inner(*args, **kwargs):
        '''在被装饰函数之前要做的事'''
        print(args)
        ret = f(*args, **kwargs)  # 被装饰的函数
        print(kwargs)
        '''在被装饰函数之后要做的事'''
        return ret
    return inner

@wrapper
def fun(a,b,c,k,m):
    return a+1
print(fun(2,6,9,m=6,k=1))

输出为:

(2, 6, 9)
{'m': 6, 'k': 1}
3

精彩评论(0)

0 0 举报