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

python学习之装饰器的wraps作用

时间:2020-03-27 13:15:23      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:输出   rap   val   def   orm   text   int   python学习   输入   

未加@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作用

标签:输出   rap   val   def   orm   text   int   python学习   输入   

原文地址:https://www.cnblogs.com/jinpingzhao/p/12580398.html

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