2015-12-26 13 views

Odpowiedz

6

Tak. Enum s mają kilka dodatkowych zdolności, których normalne klasy nie mają:

class Example(Enum): 
    this = 1 
    that = 2 
    dupe = 1 
    those = 3 

print(len(Example)) # duplicates are not counted 
# 3 

print(list(Example)) 
# [<Example.this: 1>, <Example.that: 2>, <Example.those: 3>] 

print(Example['this']) 
# Example.this 

print(Example['dupe']) 
# Example.this 

print(Example(1)) 
# Example.this 
+0

Moje wyliczenie (Python 3.4) nie jest statyczne, ale zostało utworzone zgodnie z prezentacją [tutaj] (http://stackoverflow.com/a/1695250/150978) (jedna forma automatycznego wyliczania), a ostatnie trzy polecenia nie działają do takiego wyliczenia. Czy istnieją różne implementacje enum w Pythonie? – Robert

+0

Istnieje zewnętrzna biblioteka o nazwie 'enum', która ** nie ** jest taka sama jak oficjalna 3.4' Enum', ani jej [backport] (https://pypi.python.org/pypi/enum34) i Wersje [zaawansowane] (https://pypi.python.org/pypi/aenum). Bez względu na to, jakiego 'wyliczenia 'używasz, nie należysz do trzech nowych. –

7

Czy próbowałeś print(len(Mood))?

+0

Ja nie. To było jednak rozwiązanie. Pozdrawiam;) –

Powiązane problemy