Python 3.11에서 StrEnum의 경우
Dec 21 2022
Python 3.11 업데이트로 Enum의 작동 방식에 미묘한 변화가 생겼습니다.
Python 3.11 업데이트로 Enum의 작동 방식에 미묘한 변화가 생겼습니다. 이는 PEP 663 — Standardizing Enum str(), repr(), and format() behaviors 덕분입니다 .
파이썬 3.11 이전
Python 3.11 이전에는 아래와 같은 문자열 열거형이 형식 또는 f-문자열을 통해 사용될 때 열거형의 항목 값을 반환했지만 암시적으로 를 호출할 때는 반환하지 않았습니다 __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)



































