私のenumにメソッドを追加したいと思います。enumにメソッドを追加するには?
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()
の私は現在、あなたはクラスではなく列挙型のメンバーからそれらを呼び出しているよう
classmethod
デコレータを使用してメソッドを定義する必要があります
[kt[1] for kt in ob.Kerneltype.__members__.items()]
は "動作しないことは" 非常に_vague_問題の説明です。より具体的に、あなたに表示されているエラーメッセージをお知らせください。 – ForceBru
注意: 'aslist'メソッドは、' list(Kerneltype) 'が自動的にあなたに与えないものは何もしません。 –
ここではドキュメントが非常に役立ちます。 [列挙型を反復する]メソッド(https://docs.python.org/3/library/enum.html#iteration)は必要ありません。また、整数インデックスを使用して[関数](https://docs.python.org/3/library/enum.html#programmatic-access-to-enumeration-members-and-their-attributes)。 – Ben