python装饰器

一、什么是装饰器(decorator)
简单来说,可以把装饰器理解为一个包装函数的函数,它一般将传入的函数或者是类做一定的处理,返回修改之后的对象.所以,我们能够在不修改原函数的基础上,在执行原函数前后执行别的代码.比较常用的场景有日志插入,事务处理等.
二、装饰器分为:基本装饰器(不带参数)、带参数装饰器、类版装饰器
三、各类装饰器简介
1.基本装饰器

 装饰器:
# def wrapper(func):
#     print(func)
#     def new_func(*new_argument):
#      print('before')
#      result=func(*new_argument)
#      print('after')
#      return result*2
#     return new_func

利用基本输出语句的优先级来实现
2.带参数装饰器

# 带参数的装饰器:
# def wrapper(argument):
#     print(argument)
#     def intermediate(func):
#         def new_func(*args):
#             print('before',argument)
#             result=func(*args)
#             print('after',argument)
#             return result*2
#         return new_func
#     return intermediate
# @wrapper('luck')
# def row_func(a,b):
#     print('hello',a,b)
#     return  a+b
# # row_func=wrapper(row_func)
# print(row_func(10,20))

构造一个函数,将所需装饰的内容以传参的形式传入,然后输出有效形式即可。
3.类装饰器
由于装饰器仅需举一反三即可,内容大致可举例说明,其重点在于参数的传递以及装饰品的定义。

# 类版装饰器:
# class wrapper:
#     def __init__(self,func):
#         self.func=func
#     def __call__(self, *args):
#         print('before')
#         result=self.func(*args)
#         print('after')
#         return result*2
#带参数的
# class wrapper:
#     def __init__(self,argument):
#         self.argument=argument
#     def __call__(self, func):
#          def new_func(*args):
#              print('before',self.argument)
#              result=func(*args)
#              print('after',self.argument)
#          return new_func
# @wrapper('luck')
# def row_func(a):
#     print('hello',a)
#     return a
# row_func(10)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值