python——装饰器详解

一、装饰器概念

1、装饰器

  • 装饰器:一种返回值也是一个函数的函数,即装饰器。

2、装饰器目的

  • 装饰器的目的:装饰器是用于拓展原函数的一种函数,可以在不改变原来函数名或类名的情况下,给原函数增加新的功能。
    一般情况下,我们需要改变原函数,直接改原函数的代码即可,但是实际情况中,并不是所有的函数代码(如核心代码)是不允许随意更改的,此时使用装饰器就更为方便。

二、如何创建装饰器

  • 举个栗子,如有一简单函数
def function1():
    print('i am a funcation!')
  • 现需要将该函数运行时记录日志,在该函数里加上打印日志的代码即可
def function1():
    print('i am a function!')
    print('function1 is running!')
  • 如果有大批函数都需要加上打印日志的功能,则无法一个一个去改代码,最好能使用一个方法,给所有函数调用。
def log(func):
    print('%s is runnning!' % func.__name__)
    return func
@log
def function1():
    print('i am a function!')
function1()
>>>
function1 is runnning!
i am a function!
  • 但是装饰器要求返回的是一个函数对象,所以我们可以将上述代码改造一下,使用嵌套函数,使其返回一个函数对象。
def log(func):
    def _decoration():
        print('%s is runnning!' % func.__name__
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值