栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

bool()和operator.truth()之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

bool()和operator.truth()之间有什么区别?

虽然

bool()
operator.truth()
输出 为主要用途的情况下相同的结果他们的 实现
实际上是相当不同的。
bool()
是一个类或类型的构造函数,同时
truth()
是一个狭窄的优化正则函数。

实际上,还有两个区别:1)

bool()
在不带参数的情况下调用
return
s
False
while
truth()
需要一个参数。2)
bool()
接受
x
关键字参数,例如
bool(x=1)
,而
truth()
没有关键字参数。
bool()
对于常规用例,这两者都会增加开销。

关键字的实现很奇怪,因为可能没有人需要它,而且名称

x
几乎没有描述性。Issue29695涵盖了这一点,实际上,该问题不仅影响到
bool()
其他类,例如
int()
list()
。但是,从Python
3.7开始,这些关键字参数将被删除,并且速度应会提高。尽管如此,我还是在最新的Python
3.8分支上测试了时序,并且
bool()
比以前更快,但仍比以前快两倍
truth()
,这可能是由于的实现更为通用
bool()

因此,如果您的任务非常重视速度,那么我建议您在需要函数的情况下使用

truth()
over
bool()
(例如,解析为的键
sorted()
)。但是,正如khelwood所指出的那样,
bool()
有时还是会更快
filter(bool,iterable)
,所以最好将您的用例确定为最佳选择。

当然,如果您不需要功能,而只想测试值是 还是 ,则应使用惯用语

if
ifnot
语句,如khelwood和ser2357112所评论的那样,这是最快的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号