bla*_*azs 4 python enums python-3.x
我有一个可用的坐标参考系统列表,我希望将其表示为枚举,如下所示:
import enum
class CRS(enum.Enum):
WGS84 = '4326'
POP_WEB = '3857'
UTM_33N = '3767'
# etc. etc.
Run Code Online (Sandbox Code Playgroud)
当我们只支持几个坐标系统时,这工作得很好,但是现在我们已经决定支持大约60个其他坐标系统,这个列表会变得很大.
是否可以手动输入列表?
您可以从CSV文件或其他任何内容中读取键/值,将它们存储为dict并按如下方式初始化枚举:
>>> d = {"WGS84" : "4326", "POP_WEB" : "3857", "UTM_33N" : "3767" }
>>> e = enum.Enum("CRS", d.items())
Run Code Online (Sandbox Code Playgroud)
现在您可以像往常一样访问枚举值:
>>> e.POP_WEB
<CRS.POP_WEB: '3857'>
>>> e.WGS84
<CRS.WGS84: '4326'>
Run Code Online (Sandbox Code Playgroud)