浅谈python里的装饰器

1.装饰器到底是干嘛的?
准对代码里的函数,功能不完善,但又不能随便动原函数,因此呢,引入装饰器这一个概念,给原函数添加新的功能模块。
2.装饰器概念呀,本质上是个函数,一个用来包装函数的函数,返回被包装的函数对象。

举个例子吧。

from functools import wraps
def wrapper(func):
    @wraps(func)
    def inner(*args,**kwargs):
        print('在被装饰的函数执行之前做的事')
        ret = func(*args,**kwargs)
        print('在被装饰的函数执行之后做的事')
        return ret #注意不能带括号
    return inner

@wrapper  #holiday = wrapper(holiday)
def holiday(day):
    '''Attention please'''
    print('hello world %s'%day)
    return  'Oh hahaha'

print(holiday.__name__) 
print(holiday.__doc__)
ret = holiday(3)
print(ret)

1)from functools import wraps:装饰包装器的装饰器
2)@wraps/@wrapper:这个呢,是个语法糖的概念,就是这样叫而已咯,本质上@wrapper #holiday = wrapper(holiday),@wraps(func)这个是含参数的装饰器。
3)print(holiday.name) 注意啊,name前后是双下划线,显示函数名
print(holiday.doc),显示隐藏内容

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值