如何解决使用类保留预定义的字符串
| 这是定义这样的类的好方法:class states:
INACTIVE = \'Inactive\'
ACTIVE = \'Active\'
PENDING = \'Pending\'
BANNED = \'Banned\'
保留可能值的列表,然后以例如states.INACTIVE
,所以当我想更改用户的状态时,我会执行以下操作:user.status=states.BANNED
,它的值是\'Banned\'
。我使用它在ctrl-space的IDE中使用IntelliSense快速访问这些值,并且还可以更有效地防止输入错误。但是,我不确定创建只保留一些字符串的类的好方法。如何组织更好的方法,或者这是一个好的解决方案?
解决方法
我认为这种解决方案是可以的。但是也许我可以将这些常量添加到用户类中:
class User:
STATUS_INACTIVE = \'Inactive\'
STATUS_ACTIVE = \'Active\'
STATUS_PENDING = \'Pending\'
STATUS_BANNED = \'Banned\'
def __init__(self):
self.status = User.STATUS_ACTIVE
,似乎您想要的是一个枚举。
,我在很多地方都使用这个。并认为这完全可以。
,您还可以在不同的states
模块中将它们作为模块级变量提供:
# states.py
INACTIVE = \'Inactive\'
ACTIVE = \'Active\'
PENDING = \'Pending\'
BANNED = \'Banned\'
然后在您的代码中import states
:
# example.py
import states
# ... stuff happens to create user instance
user.status = states.BANNED
使用此方法,无需实例化一个类,仅从其中提取变量即可。我不知道这是否是最有效的路线,但很方便。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。