前言
装饰器是Python中的一个重要概念,多用于在不修改原函数的基础上,为函数增加额外的功能。
基础装饰器
例如小李给女朋友买了一款iPhone12作为生日礼物,手机原封未拆封。
def gift():
print('iPhone12')
gift() # 运行显示礼物信息
但还是觉得礼物太单薄,于是又买了一盒德芙巧克力,一支dior的口红,并找了个精美的礼品盒包装了一下,盒子里放满了泡沫球。
def gift():
print('iPhone12')
def box(gift):
print('='*5 + '礼物盒' + '='*5)
print('一盒泡沫球')
print('好多巧克力')
print('一支dior口红')
return gift
gift = box(gift) # 将礼物包装后作为礼物
gift() # 显示礼物信息
运行后显示如下:
=====礼物盒=====
一盒泡沫球
好多巧克力
一支dior口红
iPhone12
这个box便是一个装饰器,它的参数是一个函数对象,同数字、字符串、列表、字典等数据类型一样,函数和类也可以作为函数的参数使用,毕竟在Python里人人平等,一切皆对象。
box在使用时依然返回了原来的gift,只是在拿到这个gift之前增加了两个额外的惊喜,然后我们把box作为gift使用即可。
装饰器本质上就是以函数作为参数,对函数做一些处理,并替换原函数的一种高阶函数。
上例中,使用装饰器表示为如下。
def box(gift): # 以函数为参数的装饰器
print('='*5 + '礼物盒' + '='*5)
print('一盒泡沫球')
print('好多巧克力')
print('一支dior口红')
r

本文介绍了Python中的装饰器,通过实例展示了如何创建基础装饰器、处理函数参数的装饰器以及带参数的装饰器,帮助读者理解装饰器的本质和用法。
最低0.47元/天 解锁文章

795

被折叠的 条评论
为什么被折叠?



