enum özelliklerinin kullanıcı dostu unicode temsili, enum şuna benzer:Python 2.7, enum34 ve ben (Flask ve Flask-Yönetici Kullanarak) bir veritabanına farklı seçenekler yazmak için Python 2.7 enum34 kullanıyorum
class Veggie(enum.Enum):
celery = 1
tomato = 2
broccoli = 3
seçimler gibi değerleri atamak için aşağıdaki gibi
sonra kullanmak: Ben tamsayılar olarak, veritabanında saklanan olmak istiyorum nasıl bu çünkü tamsayılar kullanıyorum
my_veggie = Veggie.celery
.
Bunu sonlandırdığımda, son kullanıcı için, unicode (Veggie.celery), aşağıdaki dizeyi verecektir: Veggie.celery, ancak bunun yerine kullanıcı dostu bir dize olmasını istiyorum. "Veggie: Kereviz", "Sebzeli: Domates", vb .... Açıkça unicode() tarafından döndürülen dizeyi manipüle edebilirdim, ama sanırım bir sınıf yöntemi kullanarak bunu yapmak için daha kolay, daha temiz bir yol olmalı enum ile yerleşik bir şey? Bunun bir çok yaparsanız
class Veggie(Enum):
celery = 1
tomato = 2
broccoli = 3
def __str__(self):
return self.__class__.__name__ + ': ' + self.name
>>> Veggie.tomato
<Veggie.tomato: 2>
>>> print Veggie.tomato
Veggie: tomato
, kendi temel sınıf oluşturmak:
sizeEnum
sınıfın dize çıkışını değiştirmek isterseniz