python装饰器常见问题_关于python装饰器的问题

本文介绍了Python装饰器的使用要点,指出装饰器函数参数应传函数而非字符串,其具有参数为函数对象、使用内部函数、返回函数对象等特点。还给出了具体代码示例,并说明了装饰器可简化代码、增加可读性,统一调用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

装饰器函du数参数要传函数,zhi而不是字符串。

装饰dao器函数内特点:

1,参数为函数对象

2,使用内部函容数

3,返回函数对象

在你的代码中:

装饰器函数是arg_func(sex)

内部函数是func1()

被装饰函数是man()和woman()

所以代码要改成:

def arg_func(sex):

def func1():

sex()

if(sex.__name__=='man'):

print("you can 't")

if(sex.__name__=='woman'):

print("you can")

return func1

@arg_func

def man():

print('good good study')

@arg_func

def woman():

print('good good study')

man()

woman()

PS:装饰器就是为了简化代码,增加可读性,方便团队开发,在不修改原函数代码的前提下,通过封装修改功能,而@修饰就是为了通过原函数名调用时,不直接执行原函数,而是把原函数传递到装饰器函数,通过内部函数(闭包)来调用原函数。这样好处,就是统一调用方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值