Python装饰器作用(用途讲解)

函数装饰器主要作用是:不修改源函数的基础上,给原来函数增加功能。
比如:打印句子【我在CSDN学Python’】,我想不修改这个函数前提下,增加一句话,我叫XXX名字。看代码

def name():
    print('我在CSDN学Python')
def funA(f):
    print("我叫王小二")
    f()

@funA
def name():
    print('我在CSDN学Python')
    
运行结果:
我叫王小二
我在CSDN学Python

下面这个代码就是def name的装饰器,用来增加函数def name()的功能。
def funA(f):
print(“我叫王小二”)
f()
没修改def name()函数,却增加了一句话。
可以打印到一行,只需加end= " " 就可以了。

def funA(f):
    print("我叫王小二",end=' ')
    f()

@funA
def name():
    print('我在CSDN学Python')
    
运行结果:
我叫王小二 我在CSDN学Python

去掉@funA这样↓

def funA(f):
    print("我叫王小二",end=' ')
    f()


def name():
    print('我在CSDN学Python')

name=funA(name)

运行结果:
我叫王小二 我在CSDN学Python

f()参数解释,这f和name的内存地址相同。函数name实际已经是fucA的参数了。可以print(name),print(f)看看。

def funA(f):
    print("我叫王小二",end='   ')
    f()
    print(f)

def name():
    print('我第一次学Python')
    print(name)
name=funA(name)

结果:
我叫王小二 我第一次学Python
<function name at 0x000002013DEBB550>
<function name at 0x000002013DEBB550>

学习装饰器要画内存图,这个更加直观快速的全面掌握运行原理。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值