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

python 装饰器 @用法初探

时间:2015-09-30 18:15:21      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:python   return   生成器   装饰器。   

今天初步学习了一下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

python 装饰器 @用法初探

标签:python   return   生成器   装饰器。   

原文地址:http://pangfei.blog.51cto.com/8832397/1699590

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