从品牌网站建设到网络营销策划,从策略到执行的一站式服务
装饰器:用来修改函数功能的函数
创新互联建站不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都做网站、成都网站制作质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式全网营销推广需求,让再小的品牌网站设计也能产生价值!
- 可以在不改变原函数的基础上添加功能
实现装饰器的方法:从函数中返回函数,将原函数作为一个参数传给另一个函数代码:装饰器pro_print在函数执行前输出提示"welcome to class"
def pro_print(fun): # 装饰器函数 def wrapper(*args,**kwargs): # 接收各种类型的不定长参数 print("welcome to class") fun() return wrapper @pro_print # 语法糖,在函数前使用用于装饰函数 def fun(): print('hello,python') fun()
但装饰器会覆盖原有函数的函数名,提示文档等信息
def pro_print(fun): # 装饰器函数 def wrapper(*args,**kwargs): # 接收各种类型的不定长参数 '''执行函数前提示welcom to class''' print("welcome to class") fun() return wrapper @pro_print # 语法糖,在函数前使用用于装饰函数 def fun(): '''输出hello,python''' print('hello,python') fun() print(fun.__name__) print(fun.__doc__)
测试结果:
导入functools中的wraps函数可以解决这个问题
from functools import wraps def pro_print(fun): # 装饰器函数 @wraps(fun) def wrapper(*args,**kwargs): # 接收各种类型的不定长参数 '''执行函数前提示welcom to class''' print("welcome to class") fun() return wrapper @pro_print # 语法糖,在函数前使用用于装饰函数 def fun(): '''输出hello,python''' print('hello,python') fun() print(fun.__name__)
测试结果:
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图