Seb*_*ian 3 python enums numpy python-3.x
对于 Python 3.9 项目,我们希望使用它,Enums因为我们对许多属性进行了分箱,如下例所示。不幸的是,这些容器对应于实数,并将在大型公式中使用,因此IntEnum可能不是一个很好的选择。
例如:
from enum import Enum
class WaterVapor(Enum):
VERY_DRY = 0.2
DRY = 0.5
MEDIAN = 0.8
WET = 1.0
Run Code Online (Sandbox Code Playgroud)
比如说,如果我要实现一个ComparableEnum实现必要的比较运算符并简单地比较value两个ComparableEnums 的 s,并且我填充了其中的 numpy array,那么在对此数组执行操作时我仍然可以获得 numpy 的性能优势吗?我的直觉告诉我不是,但我还没有找到明确的答案。
如果我的直觉是正确的,任何替代设计建议也将非常感激。使用浮点数对于我们将要进行的计算至关重要,numpy 提供的性能增强也是如此。将它们限制为特定值确实很好,但不能以牺牲其他两个因素为代价。
您需要继承自float:
from enum import Enum
class WaterVapor(float, Enum):
VERY_DRY = 0.2
DRY = 0.5
MEDIAN = 0.8
WET = 1.0
print(WaterVapor.VERY_DRY.value)
Run Code Online (Sandbox Code Playgroud)