Kasus untuk StrEnum di Python 3.11
Dec 21 2022
Dengan pembaruan ke Python 3.11, kami mengalami perubahan halus dalam perilaku Enum.
Dengan pembaruan ke Python 3.11, kami mengalami perubahan halus dalam perilaku Enum. Ini berkat PEP 663 — Menstandarkan perilaku Enum str(), repr(), dan format() .
Sebelum Python 3.11
Sebelum Python 3.11, string enum seperti yang ditunjukkan di bawah ini akan mengembalikan nilai entri di enum saat digunakan melalui format atau f-string tetapi tidak saat memanggil secara implisit __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'
Di Python 3.11, StrEnum ditambahkan ke pustaka standar. Menggunakan itu alih-alih gaya enum yang disebutkan di atas membuat perilaku lebih jelas.
# 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'

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































