gpt4 book ai didi

hy - 为什么 '0 is false, but ' False 是真的?

转载 作者:行者123 更新时间:2023-12-04 10:28:34 26 4
gpt4 key购买 nike

我在玩符号,惊讶地看到:

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

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

最佳答案

'0不是象征;这是一个 HyInteger ,继承自 int并且表现得像 int在许多方面。特别是,它使用 int__bool__方法。
'False确实是一个符号( HySymbol ),但是对符号的大多数操作,包括 bool ,不要尝试评估符号。相反,他们将其视为字符串。至少目前,HySymbol继承自 str .所以,bool对任何非空符号返回 True .出于同样的原因,(+ 'x 'y)返回字符串 "xy"即使您已经设置了变量 xy到数字。如果要 bool 化由符号表示的变量的值,而不是符号本身,请说 (bool (eval 'False)) . (令人困惑的是,Hy 有一个名为 eval 的核心函数,它与 Python 的 eval 不同。将来,您可能会期望将其称为 hy.eval 而不是自动导入。)

What is the best way to represent boolean values on Hy?



带着朴素的旧 bool ,就像在 Python 中一样。

关于hy - 为什么 '0 is false, but ' False 是真的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60524679/

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