枚举 Enum
人有高矮胖瘦,假如现在Person类,我需要你声明一个属性,让它来标识一个人高矮和胖瘦,你如何做呢?
枚举正是此类情况的正确应用。
from enum import Enum, unique
Enum('Posture', ('Overweight', 'Chubby', 'Slim'))
# @unique 装饰器可以帮助我们检查保证没有重复值
@unique
class Posture(Enum):
Overweight = '超重'
Chubby = '丰满'
Slim = '苗条'
class Person(object):
def __init__(self, name, age, posture):
self.name = name
self.age = age
self.posture = posture
def __str__(self):
msg = "我叫 %s,年年 %s 岁,体型 %s" % (
self.name, self.age, self.posture.value)
return msg
p = Person('Pie', '18', Posture.Slim)
print(p)