您的位置:首页 > 其它

Symantec 赛门铁克招聘 Content Architect

2012-02-28 16:25 204 查看
今天初步学习了一下python 的生成器,之前一直不明白怎么用,今天基本上搞明白了最基本的。

#!/usr/bin/python
def a(fn):
print 'a'
# def d(st):
# print st+'d'
return fn
return d
def b(fn):
print 'b'
return fn
def e(fn):
print 'e'
def f(bn):
print bn+'e2'
return f

@e
@a
@b
def c(st):
print '=='
c('*')

运行一下输出:
b
a
e
*e2

下面来分析一下:
首先执行 c('*) ,在执行时先往上执行@b 实际上是执行b(c) , 返回c, 然后执行@a,实际上是a(c),返回c,再执行@e,实际上是e(c),返回的是f函数,加上f('*') 。得到结果。
综上其实是这样执行的 (e (a (b(c))) ('*')===》 f() ('*') ==> f('x') 当然再逐级过程中有打印输出(e (a (b(c))) 会一次打印出相应的值。
本文出自 “庞飞” 博客,请务必保留此出处http://pangfei.blog.51cto.com/8832397/1699590
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: