首页 > 解决方案 > 生成具有连续值的变量

问题描述

我正在使用一个有很多列的表。为了不得到幻数,我编写了这样的代码

colName, colID, colDesc = 1, 2, 3

当我想添加一个新项目时,它变成

#        vvvvvvvv                           v
colName, colAddr, colID, colDesc = 1, 2 ,3, 4

我在colAddr我想要的地方加上一个 4 在最后。这适用于 4 个变量,但大约有 20-30 个,我得到了很长的代码行。

所以我把它们分开:每行

colName = 1
colID = 2
colDesc = 3

如果我想在名称和 ID 之间添加一些东西,我将不得不重新编号变量,这真的很痛苦

colName = 1
colAddr = 2
colID = 3 # renumbered
colDesc = 4 # renumbered

我可能不得不经常在两者之间添加列 - 表格设计仍然很流畅,所以我想到了这样的东西

col = 0
col, colName = col + 1, col
col, colID = col + 1, col
col, colDesc = col + 1, col

如果我想添加colAddr,那将只是一行更改

col = 0
col, colName = col + 1, col
col, colAddr = col + 1, col # new line of code
col, colID = col + 1, col
col, colDesc = col + 1, col

这有效,但看起来真的很乱。有没有更好的方法来做到这一点?

标签: pythonenums

解决方案


比@depperm 建议的更优雅的解决方案是使用enum模块(从 Python v.3.4 开始可用),例如:

from enum import Enum
class MyEnum (Enum):
    col, colName, colAddr, colID, colDesc = range(5)

然后按以下方式使用它:

MyEnum.col
MyEnum.colName
...

您当然可以为每个变量使用非连续值。


推荐阅读