python wraps,,用代码说明问题:de


用代码说明问题:

def d(f):def _d(*args, **kwargs):print f.__name__, ‘ is called‘f(*args, **kwargs)return _d@ddef test():"""function test"""print ‘test‘if __name__==‘__main__‘:print test.__name__, " | ", test.__doc__

输出:

_d  |  None

可能你想要输出的是这样的:

test | function test

原因自然是函数已经发生了变化。

如果想要输出"test | function test",可以用wraps,d修改如下:

from functools import wrapsdef d(f):@wraps(f)def _d(*args, **kwargs):print f.__name__, ‘ is called‘f(*args, **kwargs)return _d

即,在_d上面用wraps(f)修饰一下。

python wraps

相关内容

    暂无相关文章

评论关闭