不同索引名称列表(如C / C ++或Java中的Enum)的Python习惯用法是什么?
澄清:我希望将值的属性设置为受限范围,例如卡套Heart, Club, Spade, Diamond
。我可以使用范围为0..3的int表示它,但它允许超出范围输入(如15)。
答案 0 :(得分:15)
class Suite(object): pass
class Heart(Suite): pass
class Club(Suite): pass
等
python中的一个类是一个对象。所以你可以写
x=Heart
等
答案 1 :(得分:8)
修改强>:
class Suite(set):
def __getattr__(self, name):
if name in self:
return name
raise AttributeError
s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond'])
s1.Heart