全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python中如何获取类属性的列表

前言

最近工作中遇到个需求是要得到一个类的静态属性,也就是说有个类 Type ,我要动态获取 Type.FTE 这个属性的值。

最简单的方案有两个:

getattr(Type, 'FTE')
Type.__dict__['FTE']

那么,如果要获取类属性的列表,该怎么做呢?

首先上场的是 dir ,它能返回当前范围的所有属性名称列表:

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__']
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

可以配合使用 inspect 包中的功能来过滤:

>>> [i for i in dir(list) if inspect.isbuiltin(getattr(list, i))]
['__new__', '__subclasshook__']

inspect 包中还包含:

>>> [i for i in dir(inspect) if inspect.isfunction(getattr(inspect, i))]
['_searchbases', 'classify_class_attrs', 'cleandoc', 'findsource', 'formatargspec', 'formatargvalues', 'getabsfile', 'getargs', 'getargspec', 'getargvalues', 'getblock', 'getcallargs', 'getclasstree', 'getcomments', 'getdoc', 'getfile', 'getframeinfo', 'getinnerframes', 'getlineno', 'getmembers', 'getmodule', 'getmoduleinfo', 'getmodulename', 'getmro', 'getouterframes', 'getsource', 'getsourcefile', 'getsourcelines', 'indentsize', 'isabstract', 'isbuiltin', 'isclass', 'iscode', 'isdatadescriptor', 'isframe', 'isfunction', 'isgenerator', 'isgeneratorfunction', 'isgetsetdescriptor', 'ismemberdescriptor', 'ismethod', 'ismethoddescriptor', 'ismodule', 'isroutine', 'istraceback', 'joinseq', 'namedtuple', 'stack', 'strseq', 'trace', 'walktree']

还可以配合 callable 来使用:

>>> [i for i in dir(inspect) if not callable(getattr(inspect, i))]
['CO_GENERATOR', 'CO_NESTED', 'CO_NEWLOCALS', 'CO_NOFREE', 'CO_OPTIMIZED', 'CO_VARARGS', 'CO_VARKEYWORDS', 'TPFLAGS_IS_ABSTRACT', '__author__', '__builtins__', '__date__', '__doc__', '__file__', '__name__', '__package__', '_filesbymodname', 'dis', 'imp', 'linecache', 'modulesbyfile', 'os', 're', 'string', 'sys', 'tokenize', 'types']

上面提到了 __dict__ ,也可以用它来获取属性列表:

>>> list.__dict__.keys()
['__getslice__', '__getattribute__', 'pop', 'remove', '__rmul__', '__lt__', '__sizeof__', '__init__', 'count', 'index', '__delslice__', '__new__', '__contains__', 'append', '__doc__', '__len__', '__mul__', 'sort', '__ne__', '__getitem__', 'insert', '__setitem__', '__add__', '__gt__', '__eq__', 'reverse', 'extend', '__delitem__', '__reversed__', '__imul__', '__setslice__', '__iter__', '__iadd__', '__le__', '__repr__', '__hash__', '__ge__']

总结

以上就是在Python中得到类属性列表的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# python  # 类属性  # python获取类所有属性  # 类的属性  # Python 列表(List)操作方法详解  # Python统计列表中的重复项出现的次数的方法  # Python实现合并两个列表的方法分析  # python提取字典key列表的方法  # Python列表list数组array用法实例解析  # python比较两个列表是否相等的方法  # 在Python的列表中利用remove()方法删除元素的教程  # Python中列表元素转为数字的方法分析  # python 把列表转化为字符串的方法  # Python字符串、元组、列表、字典互相转换的方法  # Python去除列表中重复元素的方法  # Python中将字典转换为列表的方法  # python分割列表(list)的方法示例  # 在Python中使用lambda高效操作列表的教程  # python获取指定目录下所有文件名列表的方法  # Python中使用copy模块实现列表(list)拷贝  # python创建列表和向列表添加元素的实现方法  # Python列表操作方法详解  # 的是  # 包中  # 我要  # 有个  # 还可以  # 可以用  # 类属  # 怎么做  # 要得  # 它能  # 最简单  # 它来  # 也就是说  # 有两个  # 就是在  # 有疑问  # index  # insert  # count  # extend 


相关文章: 详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  建站与域名管理如何高效结合?  建站主机默认首页配置指南:核心功能与访问路径优化  如何在企业微信快速生成手机电脑官网?  制作证书网站有哪些,全国城建培训中心证书查询官网?  jQuery 常见小例汇总  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何在腾讯云服务器上快速搭建个人网站?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站主机如何选?高性价比方案全解析  安云自助建站系统如何快速提升SEO排名?  公司网站制作价格怎么算,公司办个官网需要多少钱?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  建站之星ASP如何实现CMS高效搭建与安全管理?  个人网站制作流程图片大全,个人网站如何注销?  如何高效利用200m空间完成建站?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  建站之星后台密码如何安全设置与找回?  完全自定义免费建站平台:主题模板在线生成一站式服务  建站主机选购指南与交易推荐:核心配置解析  建站主机服务器选购指南:轻量应用与VPS配置解析  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  建站主机是什么?如何选择适合的建站主机?  如何在建站之星网店版论坛获取技术支持?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?    网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  湖北网站制作公司有哪些,湖北清能集团官网?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  建站之星如何助力企业快速打造五合一网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  西安专业网站制作公司有哪些,陕西省建行官方网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  建站之星安装路径如何正确选择及配置?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  建站之星如何快速解决建站难题?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何通过cPanel快速搭建网站?  北京的网站制作公司有哪些,哪个视频网站最好?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  实例解析Array和String方法 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。