潘飞

潘飞的博客

他的个人主页  他的博客

python装饰器

潘飞  2009年11月13日 星期五 14:24 | 1883次浏览 | 0条评论

python装饰器

自娱自乐...

装饰器:

类里定义类方法(classmethod):

def f(cls,...):

    defination of f snipped

f = classmethod(f)

这样写对可读性没有什么好处,因为,当看到f定义的时候,读者不会很快意识到这就是一个类方法。如果在f前面能说明这一点,就好多了。2.4允许如下的语法:

@classmethod def f(cls,...):

     definations here

@classmethod装饰器必须紧跟着一个def语句,就是说f = classmethod(f)就会在def语句之后执行。

自己定义的装饰器,接受一个函数对象作为参数,并返回一个函数对象。

def showdoc(f):

    if f.__doc__:

        print '%s: %s'%(f.__name__,f.__doc__)

    else:

        print '%s:no docstring'%f.__name__

    return f

@showdoc

def f1():

    '''I have doc'''

    pass

@showdoc

def f2():

    pass

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号