在python中,将布尔值赋给变量和将字符串赋给变量之间是否存在显著的速度差异?

2024-05-23 15:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在开发一个python项目,我关心的是性能,因为我的CPU总是使用它90-98%的计算能力

因此,我在考虑如何在代码中进行更改以加快速度,并注意到我有一个字符串变量,它总是接收两个值中的一个:

state = "ok" 
state = "notOk"

由于它只有2个值,我考虑将其更改为布尔值,如:

isStateOk = True
isStateOk = False

这样做有意义吗?在将字符串赋给变量和将布尔值赋给变量的速度上是否有很大的差异,或者根本没有任何差异

我还应该提到,我在代码中使用了这个变量,比如30if comparison,那么比较的速度可能会有好处

if (state == "ok) # Original comparison
if (isStateOk)    # New comparison

Tags: 项目字符串代码ifok差异cpu性能
1条回答
网友
1楼 · 发布于 2024-05-23 15:20:43

这不会用90-98%的CPU修复程序,但从技术上讲,使用布尔值更好

您还可以使用is instead of ==

isStateOk = True

if isStateOk is True:
    # Do stuff

编辑: 无论如何,在https://hg.python.org/cpython/rev/01a7e66525c2/中,他们已经让Python解释器将== True转换成了is True引擎盖下,因此无论采用哪种方式编写,性能都没有差别

虽然在这里使用布尔是个好主意,因为布尔的目的是表示ok/not ok状态,但它不会带来任何明显的性能改进

相关问题 更多 >