首页 > 代码库 > 六、PYTHON 学习之装饰器使用
六、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‘] |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。