毕竟,== 通常被视为传递符号,这意味着依据 a == b 和 b == c,可以推论出 a == c。但是,假设在一个数是真值的状况下,它与 True 停止比较的结果是相等的,则像 6 == True == 7 这样的暴行将成立,从而可以推断出错误的 6 == 7。那是不可接受的。(此外,它会破坏向后兼容性。但是,即使它不破坏,出于前面的缘由,我依然支持。)
还应该提示新手,没有理由写:
if bool(x): ...
由于布尔值隐含在“if”中。在这里,显式并 不 比隐式好,由于添加的词法会损害可重用性,并且限制了解释器的解释行为。 (译注:”The Zen of Python“中以为”显式比隐式好“,但在这里,Guido 以为隐式更好,所以他在原文档中加粗了”not“)但是,有时分有理由写成:
b = bool(x)
当不需求保留对恣意 x 对象的援用时,或许由于某些其它缘由需求标准化时,这很有用。有时分这样写也很适宜:i = int(bool(x))
它将布尔值转换为整数的 0 或 1。传达了将该值用作 int 的意图。 完成残缺的 C 实现代码已上传到 SourceForge 补丁管理器:https://bugs.python.org/issue528022
它将很快被合入到 python 2.3a0 的 CVS 中。
(责任编辑:admin)