在python的类中获取所有常量

塞达维德

我有一个类,该类实际上用于定义其他类的公共常量。它看起来像以下内容:

class CommonNames(object):
    C1 = 'c1'
    C2 = 'c2'
    C3 = 'c3'

我想“以Python方式”获取所有常量值。如果我使用了CommonNames.__dict__.values()这些值('c1',等等),但是我得到了其他一些信息,例如:

[<attribute '__dict__' of 'CommonNames' objects>,
 <attribute '__weakref__' of 'CommonNames' objects>,
 None]

我不要

我希望能够获取所有值,因为此代码将在以后更改,并且我想让其他地方知道这些更改。

马丁·彼得斯(Martijn Pieters)

您必须通过过滤名称来显式过滤掉它们:

[value for name, value in vars(CommonNames).iteritems() if not name.startswith('_')]

这将为不以下划线开头的任何名称生成一个值列表:

>>> class CommonNames(object):
...     C1 = 'c1'
...     C2 = 'c2'
...     C3 = 'c3'
... 
>>> [value for name, value in vars(CommonNames).iteritems() if not name.startswith('_')]
['c3', 'c2', 'c1']

对于此类枚举,最好使用添加到Python 3.4的新enum34反向移植enum

from enum import Enum

class CommonNames(Enum):
    C1 = 'c1'
    C2 = 'c2'
    C3 = 'c3'

values = [e.value for e in CommonNames]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从包中获取所有类

来自分类Dev

循环所有类中的常量

来自分类Dev

获取Python包中的所有类名

来自分类Dev

列出指定类的所有常量

来自分类Dev

枚举常量包含相同枚举类的所有枚举常量

来自分类Dev

获取常量的所有者

来自分类Dev

在Python中修补类的所有实例

来自分类Dev

列出Python类中的所有变量

来自分类Dev

在Flutter应用中以编程方式获取Dart类中定义的所有“静态常量”

来自分类Dev

如何在Python中获取类的类方法的所有名称

来自分类Dev

数据类中的Python类“常量”

来自分类Dev

如何使用Selenium Python中的一个类从任何网站获取所有数据

来自分类Dev

是否有内置方法从Python所有基类中获取所有__annotations__?

来自分类Dev

使用特定的span类python硒获取页面中的所有元素

来自分类Dev

循环所有类中的常量

来自分类Dev

获取Python包中的所有类名

来自分类Dev

列出指定类的所有常量

来自分类Dev

如何在python中以列表的形式获取类的所有属性

来自分类Dev

从python目录中获取所有模块名称,类名称和方法名称

来自分类Dev

在解析中获取所有相关的类

来自分类Dev

在Python中修补类的所有实例

来自分类Dev

python硒获取ul类中的所有文本

来自分类Dev

获取包中声明的所有变量和常量名称

来自分类Dev

如何在PHP中获取所有预定义的常量?

来自分类Dev

如何获取属于 Python 3 中特定类的所有属性(继承的除外)的值

来自分类Dev

Python:如何从导入中打印所有常量的值?

来自分类Dev

从类中获取所有静态属性

来自分类Dev

从 Python 3 中的代码对象中提取所有常量

来自分类Dev

如何从python类中的实例变量中获取所有值的列表

Related 相关文章

热门标签

归档