您的位置:首页 > 编程语言 > Python开发

Python 简单装饰器白话文详解

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






如上图是我自己编写的一个简单的装饰器,按照简单的写:
首先@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
可能看着比较繁琐 但是你心平气和的去看完的话,相信你一定对装饰器有一个很好的了解;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息