为什么'0为假,但'False为真?

情人

我在玩符号时很惊讶地看到:

hy 0.18.0 using CPython(default) 3.7.3 on Linux
=> (bool '0)
False
=> (bool 'False)
True
=> 

这是设计决定吗?在Hy上表示布尔值的最佳方法是什么?

密码学家

'0不是符号;它是一个HyInteger,从许多方面继承int并表现得像int特别是,它使用int__bool__方法。

'False确实是一个符号(HySymbol),但是bool对该符号进行的大多数操作(包括)都不要尝试评估该符号。相反,他们将其视为字符串。至少暂时是HySymbol从继承的str因此,bool在任何非空符号return上True出于同样的原因,即使您已设置变量数字,也要(+ 'x 'y)返回字符串如果要布尔化符号表示的变量的值,而不是符号本身,请说(令人困惑的是,Hy的核心函数与Python的函数不同。在将来,您可能会期望调用它而不是自动导入它。)"xy"xy(bool (eval 'False))evalevalhy.eval

在Hy上表示布尔值的最佳方法是什么?

用一个普通的old bool,就像在Python中一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:为什么为真而不是数字?

来自分类Dev

为什么NaN === NaN为假?

来自分类Dev

为什么1 === 1 === 1为假?

来自分类Dev

为什么比较结果为真

来自分类Dev

为什么此条件0 ='= 1'为真?

来自分类Dev

为什么“和[]”为真而“或[]”为假

来自分类Dev

PHP检查0为假

来自分类Dev

如果[0] == 0和0 == [[0]]都为真,那么为什么[0] == [[0]]为假?

来自分类Dev

为什么{} == false评估为false,而[] == false评估为true?

来自分类Dev

为什么{} == {}在JavaScript中为假

来自分类Dev

为什么此C编程代码输出为False?预期输出为真

来自分类Dev

为什么type(nil)== nil为假?

来自分类Dev

为什么$ .isnumeric为false

来自分类Dev

为什么cos(M_PI_2)== float(0)计算为假?C ++

来自分类Dev

为什么无穷大==无穷大== 1/0为假?

来自分类Dev

为什么我的比较评估为假

来自分类Dev

为什么b [2]为假?

来自分类Dev

为什么在Javascript中,“ x === x ++”为真,而“ x ++ === x`”为假?

来自分类Dev

为什么我的if语句始终为假?

来自分类Dev

为什么4> +4计算为假?

来自分类Dev

为什么此条件0 ='= 1'为真?

来自分类Dev

为什么将此评估为假?“ S” == / [S] / => 0

来自分类Dev

为什么(23 == true)为假,但(!! 23 == true)为真?毕竟有===用于精确比较

来自分类Dev

为什么for循环在相等时为真

来自分类Dev

为什么cos(M_PI_2)== float(0)的计算结果为假?C ++

来自分类Dev

如果条件为假,为什么while循环被视为真?

来自分类Dev

为什么 Boolean([]) 在 JavaScript 中为真?

来自分类Dev

Netlogo WITH 预期为真/假值,但结果为 0

来自分类Dev

为什么“0”和“0”被评估为假?

Related 相关文章

热门标签

归档