python的类里的属性是否可以为列表_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获取类的类属性_Python中如何获取类属性的列表
前言 最近工作中遇到个需求是要得到一个类的静态属性,也就是说有个类 Type ,我要动态获取Type.FTE这个属性的值. 最简单的方案有两个: getattr(Type, 'FTE') Type._ ...
- WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性
原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...
- python从收货信息,寄件信息等字符串中,获取姓名
python从收货信息,寄件信息等字符串中,获取姓名 python代码: def getUserName(address):firstNames = {"赵","钱&qu ...
- python中的元类_python中的元类
类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...
- python class类_python中的class(类)
编码注释: 在源文件的第一行或第二行写入如下内容: # -*- coding:gbk -*- # 设置源文件编码格式为:gbk 或 # -*- coding:utf-8 -*- # 设置源文件编码格式 ...
- 编写python程序、创建名为class的数据库_Python中的元类(metaclass)以及元类实现单例模式...
一.理解类也是对象 在理解元类之前,你需要先掌握Python中的类.Python中类的概念借鉴于Smalltalk,这显得有些奇特.在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在P ...
- python元类_python中的元类 metaclass
python中的元类 metaclass 在python中,类(class)本身也是一个实例对象, 它的类型则是元类, 如果没有指明, 则自定义类的类型是type. 换言之, 我们所定义的普通类都是t ...
- python中的元类_Python中的元类(metaclass)
提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
最新文章
- POJ_1976 A Mini Locomotive (dp)
- 一道题教会你回溯、动态规划、贪心
- 如何分辨 SAP Fiori Launchpad 里的真假 Fiori 应用
- from PyQt4 import QtGui,QtCore出错-解
- 设计模式系列漫谈之一 - 观察者模式
- 51单片机基本刷屏测试实验_51单片机实验
- apulSoft apShaper for Mac(滤波失真插件)
- Eclipse之智能提示 actionscript javascript java开发环境智能提示
- 老外挑战360加固--实战分析(很详细)
- 电子设计教程18:射极跟随电路的参数设计
- 远程服务器套娃,无限套娃!RemoteView云上浏览器:运行在浏览器里的远程浏览器...
- JavaScript-function函数
- ElasticSearch—冷热(hotwarm)架构部署
- 干货|4个全网最实用的OCR图片文字识别软件合集
- 推荐10个AI人工智能技术网站
- ncnn yolov5.cpp切换yolov5n6模型(一)
- intern() of String
- 盲源分离matlab程序,分享一些盲源分离的代码及相关网址
- Android客户端请求服务器端的详细解释(附源代码)
- java 动态规划 硬币_硬币问题-动态规划详解
热门文章
- ACOUG China Tour 2019上海站,等你来约!
- Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性
- THOR:MindSpore 自研高阶优化器源码分析和实践应用
- MySQL事务处理特性的实现原理
- 华为云FusionInsight助力宇宙行打造金融数据湖新标杆
- 使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生
- 如果让你手写个栈和队列,你还会写吗?
- #华为云·寻找黑马程序员#【代码重构之路】我是如何将8行代码缩减成1行的
- 深度学习 GPU环境 Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.
- 红橙Darren视频笔记 Handler源码简析与handler框架模拟 ThreadLocal