码迷,mamicode.com
首页 > 编程语言 > 详细

【转载】 python修饰符@

时间:2015-01-28 12:42:59      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

@符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一行的函数作为一个函数指针传入它对应的函数。

参考下面的代码:

 1 def spamrun(fn):
 2     def sayspam(*args):
 3         a,b =args
 4         c,d = a*5, b*5
 5         print c,d
 6         return fn(c,d)
 7     print note!
 8     return sayspam
 9 @spamrun
10 def useful(a,b):
11     print a*2, b*2
12 if __name__== "__main__":
13     #useful(2,3)
14     print nothing

运行结果:

1 note!
2 nothing

输出了“note!",spamrun方法已经运行过了。说明:

@spamrun是一个statement,会将useful当作参数传入来执行spamrun方法。

 

如果将上段代码中的useful(2,3)去年注释,输出为:

1 note!
2 10 15
3 20 30
4 nothing

这个输出结果说明:

spamrun方法运行完毕后,usefull方法已经指向sayspam方法了,而fn此时指向的是原来usefull的方法实体。

 

转载来自:http://blog.csdn.net/thumb3344/article/details/5645124

【转载】 python修饰符@

标签:

原文地址:http://www.cnblogs.com/dcb3688/p/4255310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!