Thursday, January 13th 2011, 10:00pm
Tags
enum,
Python
Abstract
Python bringt kein echtes ENUM mit, wie man es von anderen Programmiersprachen kennt. Hier werden andere Lösungen vorgestellt.
Article
|
Python Quellcode
|
1
2
3
4
5
|
class Animal:
DOG=1
CAT=2
x = Animal.DOG
|
Definition der Funktion
|
Python Quellcode
|
1
2
|
def enum(**enums):
return type('Enum', (), enums)
|
So wird die Funktion genutzt
|
Python Quellcode
|
1
2
3
4
5
6
7
|
>>> Numbers = enum(ONE=1, TWO=2, THREE='three')
>>> Numbers.ONE
1
>>> Numbers.TWO
2
>>> Numbers.THREE
'three'
|
Es können auch einfach Sequenzen unterstützt werden:
Definition der Funktion
|
Python Quellcode
|
1
2
3
|
def enum(*sequential, **named):
enums = dict(zip(sequential, range(len(sequential))), **named)
return type('Enum', (), enums)
|
Nutzung wie folgt
|
Python Quellcode
|
1
2
3
4
5
|
>>> Numbers = enum('ZERO', 'ONE', 'TWO')
>>> Numbers.ZERO
0
>>> Numbers.ONE
1
|
Request deletion
report critical content