2021-01-27

@符号装饰器

‘’’
python2.4支持使用@符号将装饰器应用在函数上,只需要在函数定义前加上@装饰器的名称即可
‘’’
def wrapper(f):
def inner(name, age):
# 增加功能
if age <= 0:
age = 0
return f(name, age)
return inner
@wrapper #func1 = wrapper(func1) # 可以用@符号代替
def func1(name, age):
return ‘姓名是:%s , 年龄是:%d’ % (name, age)

print(func1(‘小文’, -19))

‘’‘通用装饰器’’’
def wrapper(f):
def inner(*args,**kwargs):
#在这里增加功能
print(‘一份耕耘一分收获’)
res=f(*args,**kwargs)
#如果要修改原函数的返回值,在这里修改
return res
return inner

@wrapper
def func(name,age):
print(name,age)
return ‘It is a good girl !’
print(func(‘李’,26))

‘’’
带参数的装饰器:写三层,参数在最外层,函数在第二层,原函数在第一层
‘’’
#打印5次你好
def wrapper(count):
def func2(f):
def inner(*args,**kwargs):
for i in range(count):
f(*args,**kwargs)
return inner
return func2

@wrapper(5)
def func():
print(‘你好’)
func()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值