枚举中有大量常量

问题描述 投票:4回答:1

我有一个可用的坐标参考系统列表,我希望将其表示为枚举,如下所示:

import enum


class CRS(enum.Enum):
    WGS84 = '4326'
    POP_WEB = '3857'
    UTM_33N = '3767'
    # etc. etc.

当我们只支持几个坐标系统时,这工作得很好,但是现在我们决定支持大约60个额外的坐标系统,这个列表会变得很大。

是否可以手动输入列表?

python python-3.x enums
1个回答
6
投票

您可以从CSV文件或其他任何内容中读取键/值,将它们存储为dict并按如下方式初始化枚举:

>>> d = {"WGS84" : "4326", "POP_WEB" : "3857", "UTM_33N" : "3767" }
>>> e = enum.Enum("CRS", d.items())

现在您可以像往常一样访问枚举值:

>>> e.POP_WEB
<CRS.POP_WEB: '3857'>
>>> e.WGS84
<CRS.WGS84: '4326'>
© www.soinside.com 2019 - 2024. All rights reserved.