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

python functools.wraps 实例

时间:2017-10-31 20:00:39      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:imp   函数   led   结果   ret   cal   was   cto   def   

python functools.wraps 实例解读

1. 未使用wraps的实例

#!/usr/bin/env python
# coding:utf-8
def logged(func): def with_logging(*args, **kwargs): ‘‘‘i am wraps‘s doc‘‘‘ print func.__name__ + " was called" return func(*args, **kwargs) return with_logging @logged def f(x): """i am original doc""" return x + x * x print f.__name__ # 期望的是原本的名字f,结果换成了装饰器里的新函数的名字with_logging print f.__doc__ # 期望的是原本的注释,加了个装饰器成了新加装饰器里的注释了

 

2. 使用了wraps的实例

from functools import wraps


def logged(func):
    @wraps(func)
    def with_logging(*args, **kwargs):
        ‘‘‘i am wraps‘s doc‘‘‘
        print func.__name__ + " was called"
        return func(*args, **kwargs)

    return with_logging


@logged
def f(x):
    """i am original doc"""
    return x + x * x


print f.__name__  # prints ‘f‘
print f.__doc__  # prints ‘i am original doc‘

 

python functools.wraps 实例

标签:imp   函数   led   结果   ret   cal   was   cto   def   

原文地址:http://www.cnblogs.com/aaron-agu/p/7763048.html

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