0

Python 是一种面向对象的编程语言,尽管它将 0 视为 False,而诸如 Ruby 之类的语言将 0 评估为 true,因为(我相信)0 它是一个数字,而数字是对象,因此它们必须评估为 true,因为它们存在。

好吧,我对这些约定的了解是,它们存在是因为性能和/或设计原因,但是:

将 0 视为 False 有什么好处?将 0 视为真有什么缺点?

4

2 回答 2

1

这可能与 Python 在 C 中的根源有关。在 C 中,false == 0。同样在学术层面,在二进制表示中,0 几乎总是被认为是 false。

于 2013-05-31T18:30:36.013 回答
0

几乎所有通用语言(C 分支、Haskell、Python 等所有语言)都将 0 解释为 False。这很有意义,因为问题“这个变量是否包含有意义的东西?” 当 > 0 时通常为 True,当 0 时通常为 False。

我记得看到 0 被用作 True 的唯一地方是在 Unix shell 中,因为程序的所有其他退出代码都表示特定错误,而 0 表示没有错误。

如果 Ruby 将 0 视为 True,我只能想象它适合 Unix 脚本并处理返回码。

于 2013-05-31T18:31:31.483 回答