我希望初始化一个
User
类,其属性的值来自有限且不可变的可能值集合(例如,用户类型、国家的简短列表等)。在Python中,最佳方法是什么?class User(object):
def __init__(self, type, country):
self.type = type # Possible values: [Consumer, Producer]
self.country = country # Possible values: [UK, USA, Japan, France]
显而易见的是,我正式限制这组可能值的原因主要是为了避免/发现错误。
我查看了有关Python中list
和Enum
的各种解释(例如,如何在Python中实现枚举),但考虑到我的需求,我不确定这是否是正确的方法。特别是,从我所读到的内容来看,Enum
用于存储一组常量(例如将User.type
存储为CONSUMER
和PRODUCER
)......但我想直接在输出中使用这些值(所以大写字母看起来很奇怪)。而且我不确定每个值的数字等价物(例如CONSUMER=1
...)对我是否有用。
编辑:我应该补充说明一下,我的应用程序中的真实值是用法语表示的,因此包括非ASCII字符(例如États-Unis
)。采用Enum
的方式似乎无法保留这些字符,并且意味着需要将该值“翻译”为“本地化”值,这对于一个短列表来说似乎是很麻烦的。