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
#!/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
相关文章推荐
- Symantec 赛门铁克招聘 Sr. SQA Engineer
- Symantec 赛门铁克招聘 Sr. SQA Engineer (Mobile)
- Symantec 赛门铁克招聘 Security Response Engineer
- Symantec 赛门铁克招聘iOS Software Engineer
- Symantec 赛门铁克招聘 Content Analyst
- Symantec 赛门铁克招聘 Android Software Engineer
- Symantec 赛门铁克招聘 SQA Engineer
- Symantec 赛门铁克招聘 Security Response Manager
- 利用赛门铁克Symantec Endpoint Protection漏洞渗透企业网络
- 赛门铁克 symantec SSE+认证 题库
- 华赛(HuaSy)-华为(HuaWei)赛门铁克(Symantec)联姻分析... 推荐
- 华赛(HuaSy)[华为(HuaWei)赛门铁克(Symantec)]与华为关系
- 华赛(HuaSy)[华为(HuaWei)赛门铁克(Symantec)]与华为关系
- Symantec 赛门铁克系列软件清除工具
- 珍爱生命,远离赛门铁克(Symantec)
- 赛门铁克 Symantec Backup Exec 2010
- 配置赛门铁克(Symantec)https证书:从阿里云申请免费赛门铁克(Symantec)https证书并配置到cdn
- symantec最新招聘信息
- 利用赛门铁克Symantec Endpoint Protection漏洞渗透企业网络
- 赛门铁克windows server备份软件(Symantec Backup Exec 11d for Windows Servers)11d 多国语言版