python 装饰器

参考资料:https://www.yiibai.com/python/decorator.html

make_pretty()是一个装饰器,接收函数ordinary,添加一些函数并返回。

函数ordinary()得到了装饰,返回函数的名字:pretty

def make_pretty(func):
    def inner():
        print("I got decorated")
        func()
    return inner

def ordinary():
    print("I am ordinary")

当在shell中运行以下代码时,如下

>>> ordinary()
I am ordinary

>>> pretty = make_pretty(ordinary)
>>> pretty()
I got decorated
I am ordinary


一般来说,我们装饰一个函数并重新分配它,

ordinary = make_pretty(ordinary).
Python

这是一个常见的结构,Python有一个简化的语法。

可以使用@符号和装饰器函数的名称,并将其放在要装饰的函数的定义之上。 例如,

@make_pretty
def ordinary():
    print("I am ordinary")
Python

上面代码相当于

def ordinary():
    print("I am ordinary")
ordinary = make_pretty(ordinary)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值