Python装饰器使用方法

装饰器的概念

Python的装饰器就是一个嵌套函数,它可以让其他函数在不需要做任何代码变动的状态下增加额外的功能,装饰器的返回值也是一个函数对象。它经常用于有统一性需求的场景,比如:插入日志、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的相同性质代码多次利用。

装饰器的用法

代码如下:

# -*- coding:utf-8 -*-

__author__ = 'Evan'


# 二层装饰器
def decorator(func):  # 执行函数
    def wrapper(*args, **kwargs):  # 函数的实参
        result = dict()
        result['from_func_parameter'] = [args or kwargs]
        result['from_func_return_value'] = func(*args, **kwargs)
        return result
    return wrapper


# 三层装饰器
def full_decorator(value=None):  # 装饰器的实参
    def decorator(func):  # 执行函数
        def wrapper(*args, **kwargs):  # 函数的实参
            result = dict()
            result['from_func_parameter'] = [args or kwargs]
            result['from_func_return_value'] = func(*args, **kwargs)
            result['from_decorator_parameter'] = value
            return result
        return wrapper
    return decorator


@decorator
def example1(*args):
    return 'hi {}'.format(args)


@full_decorator('Hello World!')
def example2(*args):
    return 'hi {}'.format(args)


if __name__ == '__main__':
    print('二层装饰器结果:')
    print(example1('example1'))
    print('三层装饰器结果:')
    print(example2('example2'))

执行结果:

二层装饰器结果:
{'from_func_parameter': [('example1',)], 'from_func_return_value': "hi ('example1',)"}
三层装饰器结果:
{'from_func_parameter': [('example2',)], 'from_func_return_value': "hi ('example2',)", 'from_decorator_parameter': 'Hello World!'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值