Penghitungan jenis tersuai
Tetapi kadangkala kita perlu mengawal jenis penghitungan, kemudian kita boleh memperoleh kelas tersuai daripada Enum untuk memenuhi keperluan ini. Dengan mengubah suai contoh di atas:
#!/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 装饰器可以帮助我们检查保证没有重复值 @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)
Hasil output adalah seperti berikut:
Melalui contoh di atas, anda boleh mengetahui bahawa modul penghitungan mentakrifkan jenis penghitungan dengan fungsi lelaran (interator) dan perbandingan (perbandingan). Ia boleh digunakan untuk mencipta simbol yang jelas untuk nilai dan bukannya menggunakan integer atau rentetan konkrit.