当前位置: 首页 > wzjs >正文

厦门旅游网站设计线上推广平台报价

厦门旅游网站设计,线上推广平台报价,主角重生做代购网站发家,手机网站建站 服务器文章目录 装饰器普通装饰器带参数的装饰器warps 保持函数源信息不变 装饰器 普通装饰器 原理就是闭包,被装饰器装饰的函数,通过闭包返回新的函数内存地址 from functools import wraps# 不进行装饰 def ldsx():print(执行过程)return Data# fun就是被…

文章目录

    • 装饰器
    • 普通装饰器
    • 带参数的装饰器
    • warps 保持函数源信息不变

装饰器

普通装饰器

原理就是闭包,被装饰器装饰的函数,通过闭包返回新的函数内存地址

from functools import wraps# 不进行装饰
def ldsx():print('执行过程')return 'Data'# fun就是被装饰的函数名
def decorator_func(fun):def rela_func(*args,**kwargs):data = fun()data+='_扩展'print('执行过程扩展')return data# 返回函数名return rela_func# 使用装饰器装饰
@decorator_func
def ldsx_fun():print('执行过程')return 'Data'if __name__ == '__main__':data  = ldsx()print(data)data = ldsx_fun()# 查看返回值,并且查看ldsx_fun的实际函数名print(data,ldsx_fun.__name__)# 非装饰器原始
# 执行过程
# Data
# 使用装饰器
# 执行过程
# 执行过程扩展
# Data_扩展 rela_func

调用ldsx_func()可以写成decorator_func(ldsx_fun)() decorator_func(ldsx_fun)等价于 rela_func 然后再调用rela_func(),所以使用 ldsx_fun(),相当于使用rela_func()

带参数的装饰器

def decorator_func_args(ags):def decorator_func_rel(fun):def rela_func(*args,**kwargs):data = fun(*args,**kwargs)data+='_扩展'print('执行过程扩展')if ags == 'ldsx':print("装饰器参数开启 增加此扩展")return datareturn rela_funcreturn decorator_func_rel@decorator_func_args('ldsx')
def ldsx_fun_new(a,b):print('执行过程')print(a+b)return 'Data'if __name__ == '__main__':data = ldsx_fun_new(1,2)print(data, ldsx_fun_new.__name__)#打印
'''
执行过程
3
执行过程扩展
装饰器参数开启 增加此扩展
Data_扩展 rela_func
'''

装饰器函数多一层,用于接受装饰器参数,其余逻辑与普通装饰器一致

相当于decorator_func_args(‘ldsx’) -->decorator_func_rel(ldsx_fun_new)–>rela_func(1,2)

warps 保持函数源信息不变

由上文可见最后的函数名称其实都已经变了 如 ldsx_fun_new._name_ 得到的函数名rela_func

from functools import wrapsdef decorator_func_args(ags):def decorator_func_rel(fun):# warps会保持fun的元数据不变 @wraps(fun)def rela_func(*args,**kwargs):data = fun(*args,**kwargs)data+='_扩展'print('执行过程扩展')if ags == 'ldsx':print("装饰器参数开启 增加此扩展")return datareturn rela_funcreturn decorator_func_relif __name__ == '__main__':print(ldsx_fun_new.__name__)
# 返回内容为ldsx_fun_new
http://www.dtcms.com/wzjs/144853.html

相关文章:

  • 无锡企业网站建设费用百度推广登录网站
  • 济南房产信息网站官网网页加速器
  • 网站内做动图重庆森林经典台词
  • 政府官网网站建设标准西安seo网站排名
  • 中小企业网络规划与设计方案搜狗整站优化
  • 网站建设基础包括发文章用哪个平台比较好
  • 优化方案英语选择性必修二答案seo外链推广员
  • 宁波网站建设怎么做my63777免费域名查询2023年
  • 成交型网站建设价格百度贴吧怎么做推广
  • 移动网站程序近几天发生的新闻大事
  • wordpress 百度云网盘seo关键词排名优化哪好
  • 海南百度推广公司杭州优化商务服务公司
  • 企业服务网站建设需要多少钱seo排名技巧
  • 装饰公司做网站seo快排
  • 网站开发计划时间百度网盘登录入口
  • 百度不做网站外链是什么怎么开网站详细步骤
  • 网站修改flashfxp上传多久生效网站推广软件
  • 集约化政府网站建设360优化大师app下载
  • 什么网站可以做微传单网络营销教学网站
  • 白云区专业网站建设seo在线网站推广
  • 做竞价网站访问突然变少品牌策划公司介绍
  • 网站优化具体是怎么做的思亿欧seo靠谱吗
  • 微信免费做邀请函模版网站哈尔滨优化网站公司
  • 安徽省建设厅官方网站建委窗口seo排名优化表格工具
  • 做网站用多大的服务器外贸营销系统
  • 廊坊建设网站的公司百度文库官网首页
  • 中文网站 可以做谷歌推广吗谷歌外贸平台推广需要多少钱
  • 注册城乡规划师通过率seo搜索引擎优化论文
  • 文明网站建设管理培训心得资讯门户类网站有哪些
  • 单页面网站怎么做的网络营销的核心