Python的装饰器(二)

被装饰器修饰的函数,名字也会被更改,来看个栗子

def mydecorate(func):
    def inside_func():
        print("装饰器逻辑")
        func()

    return inside_func


@mydecorate
def show():
    print("this is showshow")


print(show.__name__)

我们发现show函数的名字被更改成inside_func这样就很不爽,被装饰一下名字都丢了,好在python为我们提供了一个方便的方式保持原函数的名字,来看一下更改

from functools import wraps


def mydecorate(func):
    @wraps(func)
    def inside_func():
        print("装饰器逻辑")
        func()

    return inside_func


@mydecorate
def show():
    print("this is showshow")


print(show.__name__)

这里我们在functools模块里导入了wraps 其实他也是一个装饰器,我们只需要在内部函数上带上此装饰器就行了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值