Python 3.11 の StrEnum の場合
Dec 21 2022
Python 3.11 へのアップデートにより、Enum の動作に微妙な変更が加えられました。
Python 3.11 へのアップデートにより、Enum の動作に微妙な変更が加えられました。これは、PEP 663 — Standardizing Enum str()、repr()、および format() の動作のおかげです。
Python 3.11 より前
Python 3.11 より前では、以下に示す文字列列挙型は、format または f-string 経由で使用された場合は列挙型のエントリの値を返しますが、暗黙的に を呼び出した場合は返しません__str__()。
# Python 3.10
from enum import Enum
class Foo(str, Enum):
BAR = "bar"
x = Foo.BAR
x # Outputs <Foo.BAR: 'bar'>
f"{x}" # Outputs 'bar'
"{}".format(x) # Outputs 'bar'
str(x) # Outputs 'Foo.BAR'
x.value # Outputs 'bar'Python 3.11
# Python 3.11
from enum import Enum
class Foo(str, Enum):
BAR = "bar"
x = Foo.BAR
x # Outputs <Foo.BAR: 'bar'>
f"{x}" # Outputs 'Foo.BAR'
"{}".format(x) # Outputs 'Foo.BAR'
str(x) # Outputs 'Foo.BAR'
x.value # Outputs 'bar'
Python 3.11 では、StrEnum が標準ライブラリに追加されました。前述の列挙型のスタイルの代わりにこれを使用すると、動作がより明確になります。
# Python 3.11
from enum import StrEnum, auto
class Foo(StrEnum):
BAR = auto()
x = Foo.BAR
x # Outputs <Foo.BAR: 'bar'>
f"{x}" # Outputs 'bar'
"{}".format(x) # Outputs 'bar'
str(x) # Outputs 'bar'
x.value # Outputs 'bar'

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































