Python 装饰器

– Start

点击此处观看本系列配套视频。


作为一个程序员,你一定调查过 bug,定位 bug 是非常困难的,尤其是没有足够日志的情况下。所以,通常我们会在方法的开头和结尾打印出参数和返回值,但是这样就增加了我们的工作量,有没有更好的办法呢?Python 装饰器提供了非常好的解决方案。
下面我们来定义一个 logger 装饰器。

# logger 是个装饰器,它的参数是一个函数,在它的内部定义了一个函数包装目标函数 func
# 这样我们就可以在目前函数执行之前或之后执行一些操作
def logger(func):

     def inner(*args, **kwargs):
         print(f'Calling {func} with arguments: {args},{kwargs}')
         r = func(*args, **kwargs)
         print(f'Called {func} returned: {r}')
         return r

     return inner

下面我们来看看如何使用这个 logger 装饰器。

# 使用 logger 装饰器
@logger
def add(x, y):
     return x + y


# 调用
add(1, 1)

装饰器会包装目标方法,这样我们就可以在方法之前或之后执行一些操作。

– 更多参见:Python 精萃
– 声 明:转载请注明出处
– Last Updated on 2018-08-26
– Written by ShangBo on 2018-08-26
– End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值