gpt4 book ai didi

python - 为什么对空集的显式测试不起作用

转载 作者:太空狗 更新时间:2023-10-29 18:21:01 26 4
gpt4 key购买 nike

如果空 set()False,则以下代码中的 if test == False 子句不应计算为 真的

test = set() 

# empty sets are false
if test == False:
print("set is empty")
else:
print("set NOT empty")

if not test:
print("set is empty")

输出:

set NOT empty
set is empty

最佳答案

简单来说,等于运算符== 将在这两个对象之间执行相等比较:集合和 bool 值永远不会相等,因此比较结果为假。另一方面,仅检查 if obj(或 if not obj)将检查对象的真实性,可以对每个对象进行评估。在某种程度上,这实际上使用 if bool(obj) 进行了类型转换。对于空集,这是错误的。

data model ,这两个操作调用不同的特殊方法名称。使用相等运算符比较两个对象将调用 __eq__在对象上调用 bool() 时将调用 __bool__ .

关于python - 为什么对空集的显式测试不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33452797/

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