코드 분석을 하다 자주 확인할 수 있는 enum 타입을 정리해 보도록 하겠다.
https://docs.python.org/ko/3.9/library/enum.html
enum은 enumeration의 준말로 "열거"라는 한국어 뜻을 가지고 있다. 이 패키지는 코드를 단단하게 짜는데 도움을 줄 수 있으며, 아래와 같이 패키지를 불러와 사용할 수 있다.
from enum import Enum
다음으로는 아래와 같이 Enum 클래스를 상속한 클래스를 정의하여 사용한다.
class abc(Enum):
a = 1
b = 2
c = 3
'''
abc.a.value -> 1
abc['a'].value -> 1
abc.a.name -> 'a'
abc['a'].name -> 'a'
type(abc.a) -> <enum 'abc'>
'''
name, value를 통해 해당 클래스의 인스턴스 정보를 확인할 수 있으며, 관련 변수(상태)들을 하나의 클래스로 만들어 관리하기 용이하다.
예를들어 서버의 허용 포트를 하나의 클래스를 활용해 아랴왜 같이 정의해 사용할 수 있다.
class PORT(Enum):
SSH = 22
HTTP = 8080
여러 인스턴스에 대해 숫자를 1, 2, 3으로 입력해주고 싶다면 아래와 같이 enum.auto()를 사용할 수 있다. (자동 1, 2, 3 ...)
(이게 더 번잡해 보이긴한다... 함수로 만들어서 깔끔하게 만드는게 더 좋아 보임)
class Shake(Enum):
VANILLA = enum.auto()
CHOCOLATE = enum.auto()
COOKIES = enum.auto()
MINT = enum.auto()
더 다양한 예시는 공식 문서를 참고하도록 하자..!!
(∪.∪ )...zzz
'프로그래밍 > Python' 카테고리의 다른 글
[Python] WatchDog 사용하기 (0) | 2024.05.21 |
---|---|
[Python] Python으로 휴대폰 캠을 웹캠으로 사용해보자 (0) | 2024.01.14 |
[Python] '문자+숫자'로 구성된 파일명 정렬하기 (0) | 2023.01.14 |
댓글