次の列挙型が定義されています
from enum import Enum
class D(Enum):
x = 1
y = 2
print(D.x)
今、印刷された値は
D.x
代わりに、列挙型の値を印刷したかった
1
この機能を実現するにはどうすればよいですか?
Enumobjectを印刷しています。単に印刷する場合は、.value
属性を使用します。
print(D.x.value)
列挙型メンバーとその属性へのプログラムによるアクセスセクション を参照してください:
Enumメンバーがあり、その名前または値が必要な場合:
>>> >>> member = Color.red >>> member.name 'red' >>> member.value 1
カスタム文字列表現を提供することだけが必要な場合は、__str__
メソッドを列挙に追加できます。
class D(Enum):
def __str__(self):
return str(self.value)
x = 1
y = 2
デモ:
>>> from enum import Enum
>>> class D(Enum):
... def __str__(self):
... return str(self.value)
... x = 1
... y = 2
...
>>> D.x
<D.x: 1>
>>> print(D.x)
1
次を使用してアクセスを実装しました
class D(Enum):
x = 1
y = 2
def __str__(self):
return '%s' % self.value
今私はできる
print(D.x)
は結果として1
を取得します。
self.name
の代わりにx
を印刷する場合は、1
を使用することもできます。