首页 > 编程语言 > 详细

python 装饰器

时间:2015-11-24 20:37:36      阅读:260      评论:0      收藏:0      [点我收藏+]

python 装饰器:

装饰器的作用就是在函数调用方法不变的情况下,把一个函数封装到另一个函数里面,执行这个函数时自己去调用另一个函数.

一、了解装饰器之前,先看看下面这个列子.

 1 #python解释器从上往下执行。
 2 例一:
 3 
 4 def foo():                //1.将函数放进内存
 5     print foo
 6     
 7 foo()                            //2.执行这个函数.去内存里面找到foo函数,执行里面的内容"print ‘foo‘"
 8 
 9 foo                             //代表函数名,指向了内存地址。可以对foo重新赋值。。
10 
11 例二:
12 
13 def foo():
14     print foo
15  
16 foo = lambda x: x + 1
17  
18 foo()           # 执行下面的lambda表达式,而不再是原来的foo函数,因为函数 foo 被重新定义了

再看看下面这段代码,能看懂就离学会装饰器不远了.

1 ##########################################
2 def f1(arg):                
3     arg()
4         
5 def func():
6 
7     print "12"
8     
9 f1(func)    

#我们可以简单的看看它的执行顺序:

----------------------------------------------------------
1、执行def f1(arg): 将其放进内存地址.内容不执行.
2.执行def func():将其放进内存地址,内容不执行.
3.执行f1(func) 给f1传的参数为func,这个参数为func()函数.

4.执行def f1(arg):    ===> arg = func ===> arg() ==func()

5.执行arg()      ==>  func()

6.执行def func(): 函数
7. 执行 print "12"

总结:把一个函数func()封装到另一个函数f1(arg)里面,执行这个函数f1(func)时自己去调用另一个函数.

 下来我们就看看装饰器到底是什么鬼:

 

python 装饰器

原文:http://www.cnblogs.com/saneri/p/4992586.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!