파이썬에서의 enum

조회수 9421회

저는 C를 주로 쓰는데요, 파이썬을 배워보려고 합니다. 파이썬에서도 c의 enum과 같은 기능이 지원 되나요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파이썬 3.4버전에서 enum기능이 추가되었습니다. pypi에서는 구버전(3.3, 3.2, 3.1, 2.7, 2.6, 2.5, 2.4)에서도 enum기능을 제공합니다. 구버전에서도 enum을 쓰고 싶으면 $pip install enum 이 아니라 $pip install enum34 를 해주세요. (숫자가 없으면 호환되지 않습니다.)

    사용방법은 다음과 같습니다. C랑 비슷하게 쓰실거면

    from enum import Enum
    Animal = Enum('Animal', 'ant bee cat dog')
    

    아니면 이렇게 쓰세요

    class Animals(Enum):
        ant = 1
        bee = 2
        cat = 3
        dog = 4
    

    그보다 구 버전에서는

    def enum(**enums):
        return type('Enum', (), enums)
    
    Animal = enum(ant=1, bee=2, cat=3, dog=4)
    print Animal.ant
    

    와 같이 썼습니다.

    자동으로 번호를 매기고 싶다면 다음과 같이 쓰는 방법이 있습니다.

    def enum(*sequential, **named):
        enums = dict(zip(sequential, range(len(sequential))), **named)
        return type('Enum', (), enums)
    
    Animal = enum('ant', 'bee', 'cat', 'dog')
    print Animal.ant
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)