Python 3.11'de StrEnum durumu
Dec 21 2022
Python 3.11 güncellemesiyle, Enum'un davranışında ince bir değişiklikle karşılaştık.
Python 3.11 güncellemesiyle, Enum'un davranışında ince bir değişiklikle karşılaştık. Bu , PEP 663 — Enum str(), repr() ve format() davranışlarını standartlaştırma sayesinde oldu .
Python 3.11'den Önce
Python 3.11'den önce, aşağıda gösterildiği gibi bir dize sıralaması, format veya bir f-dizesi aracılığıyla kullanıldığında enumdaki bir girişin değerini döndürürdü, ancak dolaylı olarak çağrıldığında değil __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'de standart kitaplığa StrEnum eklendi. Yukarıda belirtilen numaralandırma stili yerine bunu kullanmak, daha belirgin davranış sağlar.
# 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'
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































