使用类来保存预定义的字符串

Ser*_*rov 4 python

这是定义这样一个类的好方法吗:

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 快速访问这些值,并且它还可以更安全地防止拼写错误。不过,我不确定创建一个仅保留一些字符串的类是否是一个好方法。我怎样才能以更好的方式组织它,或者这是一个好的解决方案?

Ela*_*fer 5

我认为这个解决方案是可以的。但也许我会将这些常量添加到用户类中:

class User:
    STATUS_INACTIVE = 'Inactive'
    STATUS_ACTIVE = 'Active'
    STATUS_PENDING = 'Pending'
    STATUS_BANNED = 'Banned'

    def __init__(self):
        self.status = User.STATUS_ACTIVE
Run Code Online (Sandbox Code Playgroud)