跳转至

枚举 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)