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

python property方法,在python类中列出@property装饰的方法

Is it possible to obtain a list of all @property decorated methods in a class? If so how?

Example:

class MyClass(object):

@property

def foo(self):

pass

@property

def bar(self):

pass

How would I obtain ['foo', 'bar'] from this class?

解决方案

Anything decorated with property leaves a dedicated object in your class namespace. Look at the __dict__ of the class, or use the vars() function to obtain the same, and any value that is an instance of the property type is a match:

[name for name, value in vars(MyClass).items() if isinstance(value, property)]

Demo:

>>> class MyClass(object):

... @property

... def foo(self):

... pass

... @property

... def bar(self):

... pass

...

>>> vars(MyClass)

dict_proxy({'__module__': '__main__', 'bar': , '__dict__': , 'foo': , '__weakref__': , '__doc__': None})

>>> [name for name, value in vars(MyClass).items() if isinstance(value, property)]

['bar', 'foo']

Note that this will include anything that used property() directly (which is what a decorator does, really), and that the order of the names is arbitrary (as dictionaries have no set order).

相关文章:

  • springsecurity实现原理_不用 Spring Security 可否?试试这个小而美的安全框架
  • python异步_异步-同步-在一个python事件循环中异步调用
  • springboot打包成war_经常出现的13道SpringBoot相关的面试问题(含答案)
  • springsecurity不拦截某个接口_Spring Security (一):Simple Demo
  • enityframework 已连接的当前状态为打开。_Http 持久连接与 HttpClient 连接池,有哪些不为人知的关系?...
  • 脚本录制软件python 按键精灵 tc_从10种脚相看你的财运
  • 用eviews计算产出弹性_深圳竞价优化|投放都和产出差不多了,还有人在投竞价...
  • qq登录界面句柄_天天玩QQ!知道登录界面那两个人是谁吗?网友:不是情侣?...
  • led数字字体_led显示屏知识大全
  • python设置单元格宽度_ms-word – Python-docx,如何在表中设置单元格宽度?
  • c++判断整数翻转溢出_CBC字节翻转攻击解析
  • python调用数据库存储过程_Mysql学习---使用Python执行存储过程
  • python实现中值滤波_Python 实现中值滤波、均值滤波
  • bigdecimal不保留小数_深入理解 BigDecimal
  • mysql 去重复查询_MySQL事务隔离级别和实现原理(看这一篇文章就够了!)
  • 10个确保微服务与容器安全的最佳实践
  • 30秒的PHP代码片段(1)数组 - Array
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Create React App 使用
  • Cumulo 的 ClojureScript 模块已经成型
  • iOS 颜色设置看我就够了
  • Lucene解析 - 基本概念
  • PhantomJS 安装
  • PHP 的 SAPI 是个什么东西
  • React Native移动开发实战-3-实现页面间的数据传递
  • scrapy学习之路4(itemloder的使用)
  • 从PHP迁移至Golang - 基础篇
  • 关于Flux,Vuex,Redux的思考
  • 猴子数据域名防封接口降低小说被封的风险
  • 利用DataURL技术在网页上显示图片
  • 驱动程序原理
  • 一文看透浏览器架构
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ![CDATA[ ]] 是什么东东
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #LLM入门|Prompt#3.3_存储_Memory
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)Java 简介
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (windows2012共享文件夹和防火墙设置
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二)构建dubbo分布式平台-平台功能导图
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转载)hibernate缓存
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .md即markdown文件的基本常用编写语法
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net Core和.Net Standard直观理解
  • .net mvc 获取url中controller和action
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • @JsonFormat与@DateTimeFormat注解的使用
  • @property @synthesize @dynamic 及相关属性作用探究