Benutzerdefinierte Typaufz?hlung
Aber manchmal müssen wir die Art der Aufz?hlung steuern, dann k?nnen wir eine benutzerdefinierte Klasse von Enum ableiten, um diesen Bedarf zu erfüllen. Durch ?ndern des obigen Beispiels:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- from enum import Enum, unique Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) # @unique 裝飾器可以幫助我們檢查保證沒有重復(fù)值 @unique class Month(Enum): Jan = 'January' Feb = 'February' Mar = 'March' Apr = 'April' May = 'May' Jun = 'June' Jul = 'July' Aug = 'August' Sep = 'September ' Oct = 'October' Nov = 'November' Dec = 'December' if __name__ == '__main__': print(Month.Jan, '----------', Month.Jan.name, '----------', Month.Jan.value) for name, member in Month.__members__.items(): print(name, '----------', member, '----------', member.value)
Das Ausgabeergebnis lautet wie folgt:
Anhand des obigen Beispiels k?nnen Sie erkennen, dass das Aufz?hlungsmodul eine Iteration definiert (Interator) und Vergleichsfunktion (Vergleich) Aufz?hlungstyp. Es kann verwendet werden, um wohldefinierte Symbole für Werte zu erstellen, anstatt konkrete Ganzzahlen oder Zeichenfolgen zu verwenden.