可能重复:
在Python中实现'枚举'的最佳方法是什么?
不同索引名称列表(如C/C++或Java中的Enum)的Python习惯用法是什么?
澄清:我希望将值的属性设置为限制范围,例如卡套件Heart, Club, Spade, Diamond.我可以用0到3范围内的int来表示它,但它允许超出范围输入(如15).
sna*_*ile 15
class Suite(object): pass
class Heart(Suite): pass
class Club(Suite): pass
Run Code Online (Sandbox Code Playgroud)
等等
python中的一个类是一个对象.所以你可以写
x=Heart
Run Code Online (Sandbox Code Playgroud)
等等
这是stackoverflow上非常流行的问题
编辑:
class Suite(set):
def __getattr__(self, name):
if name in self:
return name
raise AttributeError
s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond'])
s1.Heart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11420 次 |
| 最近记录: |