gpt4 book ai didi

python - Python 中的 `if bool(x)` 和 `if x` 有什么区别吗?

转载 作者:太空狗 更新时间:2023-10-29 19:33:22 26 4
gpt4 key购买 nike

我遇到过一些代码:

if bool(x):
doSomething

我认为以下会做同样的工作:

if x:
doSomething

The reference说如果测试表达式,它会评估套件

is found to be true

bool 表达式的引用资料:

In the context of Boolean operations, and also when expressions are used by control flow statements are used by control flow statements, the following values are interpreted as false: False, None, numeric zero of all types, and empty strings and containers ... All other values are interpreted as true.

reference说到 bool() 函数:

Convert a value to a Boolean, using the standard truth testing procedure

那么以上两者是相同的还是有一些额外的微妙之处?

最佳答案

当对象被放置在 if 语句中时,它们被隐式转换为 bool 类型。因此,在大多数情况下,if 语句中的 xbool(x) 没有区别。但是,如果调用 bool() 会产生额外的开销,因为您正在进行函数调用。这里有一个快速测试来证明这一点:

In [7]: %timeit if(''): pass
10000000 loops, best of 3: 21.5 ns per loop

In [8]: %timeit if(bool('')): pass
1000000 loops, best of 3: 235 ns per loop

关于python - Python 中的 `if bool(x)` 和 `if x` 有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885382/

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