装饰类初始器

class A:@configurabledef __init__(self, a, b=2, c=3):pass@classmethoddef from_config(cls, cfg):  # 'cfg' must be the first argument# Returns kwargs to be passed to __init__return {"a": cfg.A, "b": cfg.B}

python的装饰器

这种用法基本属于装饰器的标准写法——在函数func签名上方写“@decorator”(decorator代指装饰器名称)。

解释器在调用该func函数时,等同于执行:

func = decorator(func) # decorator生成一个将func函数包装后的函数并返回,并同名覆盖func
func()  # 调用上方decorator生成的函数`

“等同于”的说法可能不够准确,因为第一句func = decorator(func)是在函数声明处执行的,且只执行一次。

同样,上面configurable的例子,也是在configurable函数中,将传进来的__init__函数包装,此后调用__init__函数等同于调用configurable包装的函数。那么包装后的函数长什么样子呢,具体行为是:

检查入参是否含有cfg
如含有cfg,调用该类的from_config类方法(classmethod),将cfg转换成参数字典,调用__init__。
如无cfg,直接按原参数列表调用__init__。

python装饰器用法相关推荐

  1. python装饰器实例-Python装饰器用法实例总结

    本文实例讲述了Python装饰器用法.分享给大家供大家参考,具体如下: 一.装饰器是什么 python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能, ...

  2. python装饰器用法_深入浅出分析Python装饰器用法

    本文实例讲述了Python装饰器用法.分享给大家供大家参考,具体如下: 用类作为装饰器 示例一 最初代码: class bol(object): def __init__(self, func): s ...

  3. python装饰器作用-Python装饰器用法实例总结

    一.装饰器是什么 python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.简单的说装饰器就是一个用来返回函数的函数 ...

  4. 你应该掌握的Python装饰器用法

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 欢迎加入团队圈子!与作者面对面!直接点击! 一对象的概念 py ...

  5. Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景 附加功能 数据的清理或添加: 函数参数类型验证 @require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改 为函数提供额外的数据 ...

  6. python 装饰器 参数-python函数装饰器之带参数的函数和带参数的装饰器用法示例...

    本文实例讲述了python函数装饰器之带参数的函数和带参数的装饰器用法.分享给大家供大家参考,具体如下: 1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(fun ...

  7. python装饰器原理-Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  8. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  9. python装饰器原理-python装饰器原理与用法深入详解

    本文实例讲述了python装饰器原理与用法.分享给大家供大家参考,具体如下: 你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时 ...

  10. python装饰器实例-Python装饰器原理与简单用法实例分析

    本文实例讲述了Python装饰器原理与简单用法.分享给大家供大家参考,具体如下: 今天整理装饰器,内嵌的装饰器.让装饰器带参数等多种形式,非常复杂,让人头疼不已.但是突然间发现了装饰器的奥秘,原来如此 ...

最新文章

  1. R操作MySQL数据库创建表、删除表、增删改查(CRUD)
  2. GitHub 给安全行业的四大启示
  3. 用Python制作一个简易的抽奖程序
  4. 庐山真面目之一 微服务的简介和技术栈
  5. 使用闭包的方式实现一个累加函数 addNum
  6. 软件本地化 pdf_软件本地化与标准翻译
  7. 谷歌浏览器怎么查看网页源代码 Chrome浏览器网页源代码查看技巧分享
  8. mysql error report,ECSHOP网店系统提示MYSQL SERVER ERROR REPORT的解决方法
  9. JavaScript之jQuery够用即可(each循环、位置偏移量和大小、克隆外层标签、嵌套返回顶部、集体绑定事件)
  10. bzoj 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪(DP)
  11. VS2019以及MFC的安装(详细)
  12. 基于etcd+confd通过nginx对docker服务混合注册发现详解
  13. 已知a/b,求c的位置
  14. python网络爬虫从入门到精通吕云翔_python爬虫
  15. Win11 恢复设置Win10任务栏、快速启动栏及右键菜单(Win11 22000.100版本测试通过)
  16. 8086 CPU结构
  17. IT规划 最容易犯的五大错误
  18. JSHOP2学习1:环境配置(超详细教程)
  19. PHP slideup,三级下拉菜单(slideDown/slideUp实现)
  20. 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器

热门文章

  1. MySQL JOIN连接用法
  2. 2019全国知识图谱与语义计算大会
  3. Python入门深度学习完整指南
  4. 数据--第40课 - 图的定义
  5. 对网页渲染的初步认识
  6. Vue(三)goods组件开发
  7. 再也不学AJAX了!(一)AJAX概述
  8. SQLServer公历转农历函数(1900年-2049年)
  9. Hbase总结(三)--使用spring-data-hadoop进行hbase的读写操作
  10. Asp.net页面传值