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

哈尔滨大连工程建设信息网站邵阳建设银行网站是多少钱

哈尔滨大连工程建设信息网站,邵阳建设银行网站是多少钱,wordpress主题列表缩略,静态网站公用头部如何调用标题迷途小书童的 Note 读完需要 5分钟 速读仅需 2 分钟 装饰器是一个非常有用而又常被误解的功能#xff0c;可以让我们在不修改函数或类的源代码情况下给它们提供扩展功能。本文将通过具体示例带你深入理解 Python 装饰器的用法。 1 装饰器基础 装饰器本质上是一个函数#xff… 迷途小书童的 Note 读完需要 5分钟 速读仅需 2 分钟 装饰器是一个非常有用而又常被误解的功能可以让我们在不修改函数或类的源代码情况下给它们提供扩展功能。本文将通过具体示例带你深入理解 Python 装饰器的用法。 1     装饰器基础 装饰器本质上是一个函数它可以让其他函数在不需要做任何代码变动的前提下添加额外功能。装饰器的语法如下 decorator def func():pass 这里的 decorator 就表示使用 decorator 这个装饰器来装饰后面的函数。 我们来看一个具体的例子 from functools import wrapsdef log(func):wraps(func) def wrapper(*args, **kwargs):print(fCall {func.__name__})return func(*args, **kwargs)return wrapperlog def add(x, y):return x yprint(add(2, 3)) 执行上述代码输出结果为 Call add 5 这里我们定义了一个名为 log 装饰器它会打印函数名称然后再调用原函数。通过 log 就可以来装饰 add 函数使其获得打印日志的功能。 2     带参数的装饰器 装饰器本身也可以带参数需要多一层封装 from functools import wrapsdef repeat(num):def decorator(func):wraps(func)def wrapper(*args, **kwargs):for _ in range(num):func(*args, **kwargs)return wrapperreturn decoratorrepeat(num3) def greet(name):print(fHello {name})greet(xgx) 执行上述脚本输出结果为 Hello xgx Hello xgx Hello xgx 这种带参数的装饰器在一些特殊场景下非常有用如需要自定义执行的次数。 3     装饰类 装饰器不仅可以装饰函数还可以装饰类看下面的示例 from functools import wrapsclass CountCalls:def __init__(self, func):self.func funcself.num_calls 0def __call__(self, *args, **kwargs):self.num_calls 1print(fCall {self.num_calls} of {self.func.__name__!r})return self.func(*args, **kwargs)CountCalls def say_hello(name):print(fHello {name})say_hello(xgx) say_hello(Alice) 执行上述脚本输出结果为 Call 1 of say_hello Hello xgx Call 2 of say_hello Hello Alice 这里我们定义了一个 CountCalls 类实现了 __init__() 和 __call__() 方法。使用 CountCalls 装饰 say_hello 函数时会先创建 CountCalls 实例对象并将 say_hello 函数存入实例的 func 属性。在调用 say_hello 时实际上调用的是 CountCalls 实例对象它会更新调用次数打印信息最后再调用原始的 say_hello 函数。这样就实现了一个统计调用次数的装饰器。 类装饰器的好处是可以存储状态方便扩展额外的功能。 4     多个装饰器 多个装饰器可以层层嵌套执行顺序由里到外。 decorator1 decorator2 def func():pass 例如 repeat(num3) log def greet(name):print(fHello {name}) greet 函数先由 log 装饰然后由 repeat 装饰。 所以装饰器的顺序会影响函数的行为。 5     总结 装饰器是一个非常强大和有用的功能可以让我们在不修改源代码的情况下动态扩展函数和类的功能是每个 Python 程序员都应该掌握的重要知识点。 6     免费社群
http://www.dnsts.com.cn/news/154828.html

相关文章:

  • 可以做商城网站的公司吗免费建立网站的有哪里
  • 网站备案会过期吗wordpress单页获取当前分类的文章
  • 网站制作排名优化wordpress 开源主题
  • 西安装修行业网站建设沧州网络建设
  • 泉州网站设计师招聘做电影网站详细教程
  • 国家建设工程注册管理中心网站58同城推广技巧
  • 国内网站要备案少儿编程加盟哪个机构好
  • 深圳住房建设厅网站网站建设未来发展前景
  • 医疗行业网站策划wordpress标签筛选
  • 门户网站建设策划网站设置在设备之间共享怎么开启
  • 注册免费微网站摄影建设网站
  • 图书网站建设论文备案网站转入阿里云
  • 一般网站的宽度是多少像素免费网站app下载
  • 手表网站欧米茄报价外贸网站建设推广公司前景如何
  • 秦皇岛做网站公司wordpress是主流cms系统
  • 昆明网站seo手机网址是什么
  • 兰溪网站怎么在百度上创建自己的网页
  • 设计网站猪八戒徐州网站建设方案推广
  • 梅州网站优化搜索大全引擎入口网站
  • 泸州市网站建设沈阳最新数据消息
  • 用别人的二级域名做网站做网站开发要安装哪些软件
  • 乐清做网站培训新都兴城建设投资有限公司网站
  • 河南郑州网站建设哪家公司好云南新闻最新消息今天
  • 各位给推荐个网站WordPress怎么更改主题名称
  • 韶关做网站公司船员专用网站开发建议
  • 百川网站注册网站账号审核不通过无法登陆怎么办
  • 关于加强网站建设工作的意见在哪里可以做企业官网
  • 福建网站建建设网站开发模版
  • 高流量网站开发框架经验电商哪个岗位最吃香
  • 用家里的电脑做网站服务器wordpress如何关注博客