gpt4 book ai didi

python - 您如何为具有三个值的状态建模?

转载 作者:行者123 更新时间:2023-12-04 14:42:34 28 4
gpt4 key购买 nike

我有一个可以处于三种状态的东西

(比如)打开、关闭、运行

我将尝试通过两种方式之一对其进行建模,

is_open = Boolean(default=False)
is_running = Boolean(default=False)

并在应用程序代码中禁止状态(例如)is_running=True、is_open = False。

我也可以试试

state=Char(choices=("O", "C", "R"))

有没有更好的方法之一,还有更好的方法吗?

编辑:我正在使用 Python(和 Django)。
编辑 2:阅读下面的答案后,我想我正在尝试以适合持久保存到数据库的形式在 Python 中模拟枚举(没有它们)

最佳答案

在 Python 中处理这个问题的最简单方法是使用字符串常量。我们在添加 inspect.getgeneratorstate() 时正是这样做的到 Python 3.2。该函数可能的返回值是:

GEN_CREATED = 'GEN_CREATED'
GEN_RUNNING = 'GEN_RUNNING'
GEN_SUSPENDED = 'GEN_SUSPENDED'
GEN_CLOSED = 'GEN_CLOSED'

创建一个简单的类作为常量的命名空间是另一个常见的选择(但该类的属性仍然应该是字符串而不是整数)。

在 Python 中,使用整数而不是字符串作为常量的好处微​​乎其微。你在比较速度上损失了一点(但不多,由于哈希缓存和其他字符串比较优化)并且使用稍微多一点的内存(但不多,因为无论目标类型如何,引用都是相同的大小),但大大简化了调试(因为您不需要将整数代码转换为有意义的状态名称 - 您可以只显示字符串值)。

关于python - 您如何为具有三个值的状态建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com