【发布时间】:2018-06-23 10:46:31
【问题描述】:
在 Python 中,True 和 False 分别与 1 和 0 具有相同的真值。
除了风格问题,我想知道从时间效率的角度来看,使用1/0 是否比使用True/False 产生更好的性能。
【问题讨论】:
-
极不可能比 1/0 更好。但很容易测试。
-
没有任何效率差异。 可能使用
if x:与if x == True:之间存在差异。 -
很多东西都有相同的真值,例如
[]->False,因此成语if my_list:而不是if len(my_list) > 0:。这似乎是过早优化的定义;您是否尝试通过切换来解决一些问题?请注意,布尔值实际上是整数(在 CPython 中,至少是 -isinstance(True, int))。 -
@jonrsharpe 实际上我有一个朋友一直使用整数代替布尔值。我只是想确定没有真正的理由不使用
True/False。 -
这种习惯可能来自另一种语言,在 Python 中完全没有必要(而且只会让代码不易阅读)。但如果您想知道他们为什么这样做,何不问他们?
标签: python performance boolean boolean-expression