python装饰器什么时候用_python装饰器何时执行?

python装饰器,使用python作为开发的小伙伴一定不会陌生,但是有没有思考过装饰器的执行原理及过程呢?下面我们来分析分析装饰器的特性及执行过程

装饰器有什么特性?

1.能把被装饰的函数替换成其它函数

这个我们经常用到应该都是知道的

2.装饰器在加载模块时立即执行

这个特性注意的不是特别多,我们来说一下这个,先看代码

registry = []

def register(func):

print('running register({})'.format(func))

registry.append(func)

return func

@register

def f1():

print('running f1')

@register

def f2():

print('running f2')

def f3():

print('running f3')

if __name__ == '__main__':

print('running main')

print('registry --> {}'.format(registry))

f1()

f2()

f3()

结果:

running register()

running register()

running main

registry --> [, ]

running f1

running f2

running f3

Process finished with exit code 0

从结果可以看出,装饰器在执行main函数之前就已经运行了,但是被装饰的函数只有在调用时才能运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值