【发布时间】:2017-05-23 16:18:13
【问题描述】:
我想在我的枚举中添加一个方法。
class Kerneltype(Enum):
tube = 0
subspace_KDE = 1
deltashift = 2
dist_sens_via_mass_1 = 3
def aslist(self):
return [self.tube, self.subspace_KDE, self.deltashift, self.dist_sens_via_mass_1]
def fromint(self, int):
return self.aslist()[int]
不起作用。而不是
Kerneltype.aslist()
我现在必须做
[kt[1] for kt in ob.Kerneltype.__members__.items()]
【问题讨论】:
-
“不起作用”是一个非常模糊的问题描述。请更具体一些,并向我们提供您收到的任何错误消息。
-
注意,你的
aslist方法不会做任何list(Kerneltype)不会自动给你的事情。 -
这里的文档很有帮助;您不需要iterate over your enum 的方法,您可以通过calling it like a function 的整数索引访问它。
-
@Ben 函数调用实际上需要一个值而不是索引。
-
@Ben 这行得通,因为 Enum 中的项目也类似于索引,请将
subspace_KDE更改为 5,然后重试。