我主要是一名C#开发人员,但我目前正在使用Python开发一个项目.
我怎样才能在Python中表示Enum的等价物?
我一直在使用一个小类来模拟一些Python项目中的Enums.有没有更好的方法,或者这对某些情况最有意义?
这里的类代码:
class Enum(object):
'''Simple Enum Class
Example Usage:
>>> codes = Enum('FOO BAR BAZ') # codes.BAZ will be 2 and so on ...'''
def __init__(self, names):
for number, name in enumerate(names.split()):
setattr(self, name, number)
Run Code Online (Sandbox Code Playgroud) 这是定义这样一个类的好方法吗:
class states:
INACTIVE = 'Inactive'
ACTIVE = 'Active'
PENDING = 'Pending'
BANNED = 'Banned'
Run Code Online (Sandbox Code Playgroud)
保留可能值的列表,然后将它们获取为,例如states.INACTIVE,所以当我想更改用户的状态时,我会执行以下操作:user.status=states.BANNED它会获取 value 'Banned'。我使用它通过 IDE 中的 IntelliSense 和 ctrl-space 快速访问这些值,并且它还可以更安全地防止拼写错误。不过,我不确定创建一个仅保留一些字符串的类是否是一个好方法。我怎样才能以更好的方式组织它,或者这是一个好的解决方案?