如何按照定义的顺序获取类变量列表?

时间:2016-07-15 14:48:04

标签: python list class variables

我有一个类,它将csv文件的列布局指定为:

class RecordLayout(object):
    YEAR = 0
    DATE = 1
    MONTH = 2
    ID = 3
    AGE = 4
    SALARY = 5

我需要按照定义的顺序获取类变量的列表。

到目前为止,我试过了:

[attr for attr in dir(RecordLayout()) if not callable(attr) and not attr.startswith("__")]

但它返回:

['AGE', 'DATE', 'ID', 'MONTH', 'SALARY', 'YEAR']

这是按字母顺序排序的类变量。我需要按照它们在类中定义的顺序返回变量:

['YEAR', 'DATE', 'MONTH', 'ID', 'AGE', 'SALARY']

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

您应该使用Enum

>>> class RecordLayout(Enum):
...     YEAR = 0
...     DATE = 1
...     MONTH = 2
...     ID = 3
...     AGE = 4
...     SALARY = 5
...
>>> for i in RecordLayout:
...   print(i)
...
RecordLayout.YEAR
RecordLayout.DATE
RecordLayout.MONTH
RecordLayout.ID
RecordLayout.AGE
RecordLayout.SALARY