python学习之装饰器的wraps作用
Posted 秋雨的蝴蝶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(装饰器)作用后,函数性质不变
以上是关于python学习之装饰器的wraps作用的主要内容,如果未能解决你的问题,请参考以下文章