Python 简单装饰器白话文详解

      之前写程序遇到过装饰器,看过几遍但是没有记住里面详细的规律,后来看别人写的代码用到了装饰器,没办法又开始学看装饰器,装饰器的介绍就不用我说了吧,我看还是直接上图吧!!!!大笑大笑


如上图是我自己编写的一个简单的装饰器,按照简单的写:

首先@addword 就等于 hello=addword(hello)这个式子;程序运行顺序是先@addword 然后是print hello();

知道规律之后就开始运行了 

我的运行结果如下图:


在这里程序首先运行@addword(相当于运行hello=addword(hello))调用addword(func)方法;这时func变成了hello,然后程序就打印出来了1111和3333  返回了addfunc, 也就是说hello=addword(hello)这个式子变成了hello=addfuc;

然后程序开始运行了print hello(),不过一定要记住这里的 hello 已经变成了addfuc  实际是print addfunc(),程序开始调用addfunc方法所以就打印出来了000000;当程序return时,这时的func()其实就是hello()[上面已经说了 func变成了hello],所以程序这时候才真正的调用hello()方法;这时候先打印出来了......,然后再return “hello”,所以这时候addfunc方法里面的return func()+"word"就变成了return hello+"world"   返回到print hello(),所以就打印出来了helloword

可能看着比较繁琐 但是你心平气和的去看完的话,相信你一定对装饰器有一个很好的了解;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值