六、PYTHON 学习之装饰器使用

Python是一种强大的语言,即可浅尝辄止,也可深入挖掘。很适合做科学计算、数据挖掘等等。今天我将简单介绍一下Python的装饰器(Decorators)的用法 。

假设我们想要庆祝下生日,需要邀请一些朋友过来参加。但是你有个讨厌的朋友,叫Joe,必须不能让他来啊。可能首先你想到的是建一个list,然后迭代查找并移除所有的Joe童鞋。这当然是个好方法,但是这里为了介绍装饰器,我们会用@来完成这个工作。虽然可能看起来没有什么必要,但是有助于大家学习装饰器的用法。

首先创建一个Python文件app.py,并且添加如下代码:

if __name__ = = "__main__" :
     party_invites = []
     party_invites.append( "Jessica" )
     party_invites.append( "Tom" )
     party_invites.append( "Bob" )
     party_invites.append( "Joe" )
     
     print (party_invites)

运行以上代码,应该会获得如下结果:

['Jessica', 'Tom', 'Bob', 'Joe']

我们显然可以搜寻并且删除Joe,但这里我们会用解释器来删除Joe,如下所示。

def nojoes(func):
     def drop_joe(party_attendees):
         func([attendee for attendee in party_attendees if attendee ! = 'Joe' ])
     return drop_joe
 
 
@nojoes
def party(party_attendees):
     print (party_attendees)
 
 
if __name__ = = "__main__" :
     party_invites = []
     party_invites.append( "Jessica" )
     party_invites.append( "Tom" )
     party_invites.append( "Bob" )
     party_invites.append( "Joe" )
 
     party(party_invites)

这里我添加了一个新函数@nojoes,可以就行预处理,去掉"Joe"。

运行一下看看,结果应该是这个:

['Jessica', 'Tom', 'Bob']
总结来说,装饰器的作用就是为已经存在的对象添加额外的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值