zoukankan      html  css  js  c++  java
  • python学习之装饰器的wraps作用

    未加@wraps

    # def tag(name):
    # def decorator(func):
    # def wrapper(text):
    # value=func(text)
    # return "<{name}>{value}</{name}>".format(name=name,value=value)
    # return wrapper
    # return decorator
    #
    # @tag("p")
    # def my_upper(text):
    # value=text.upper()
    # return value
    # print (my_upper("hello"))
    # print (my_upper.__name__)

    输出:wrapper



    加上@wraps
    def tag(name):
    def decorator(func):
    @wraps(func)
    def wrapper(text):
    value=func(text)
    return "<{name}>{value}</{name}>".format(name=name,value=value)
    return wrapper
    return decorator

    @tag("p")
    def my_upper(text):
    value=text.upper()
    return value
    print (my_upper("hello"))
    print (my_upper.__name__)

    输入:my_upper

    二者之间的区别在于加上@wraps 原函数func被decorator(装饰器)作用后,函数性质不变
  • 相关阅读:
    我是一条内存[转]
    随机翻唱辑 [2006.8.18更新]
    CentOS NTFS 挂载
    grub备忘
    CentOS 使用163软件源
    被车撞了
    爱上苦瓜
    无聊的游戏
    今天去爬山了
    博客搬家了:www.sanv.org
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12580398.html
Copyright © 2011-2022 走看看