我想用属性初始化一个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
的各种解释(例如,How to implement an Enum in Python),但我不确定考虑到我的需要,这是否是正确的方法。特别是,从我读到的内容来看,Enum
似乎是存储一个常量列表(User.type
作为CONSUMER
和PRODUCER
)。。。但是我希望能够直接在输出中使用这些值(因此大写字母看起来很奇怪)。我不确定每个值(CONSUMER=1
…)的等价数字是否对我有用。你知道吗
编辑:我应该补充一下,我的应用程序中的实际值是法语的,因此包含非ASCII字符(例如États-Unis
)。以Enum
的方式保存这些字符似乎是不可能的,这意味着将值“翻译”为“本地化”值,在我看来,这对于一个简短的列表来说是一个很大的麻烦。你知道吗
首先,你是怎么想用
États-Unis
来做一个变量的?列个单子?无论如何,枚举是一个很好的方法要限制选项,请为传递的参数
UserType
和Country
添加验证第二,您可以直接比较枚举,例如
COUNTRY.US == COUNTRY.UK #returns False
,因此这些枚举的实际值并不重要。你知道吗如果仍要检索该值,则可以从
Country.US.value
获取该值相关问题 更多 >
编程相关推荐