在Python中,首选`if x:`或`if x!= 0:`中的哪一个?

Cor*_*sky 5 python conditional coding-style

假设它x是一个整数,那么该构造if x:在功能上与if x != 0:Python中的相同.某些语言的样式指南明确禁止前者 - 例如,ActionScript/Flex的样式指南指出,您不应该为此类事件隐式地将int转换为bool.

Python有偏好吗?指向PEP或其他权威来源的链接最好.

Yuv*_*dam 8

构造:if x:通常用于检查布尔值.

对于ints,x != 0首选的使用是优选的 - 沿着显式的行比隐式的更好(PEP 20 - Python的Zen).

  • 编写`if x:`如果`x`是_semantically_ boolean,无论它的实际类型是什么,都可以写.但是,如果它被另外处理为其他东西(例如数字),并且检查是_number_(例如,您检查0以避免除以零),则缩短它会产生误导. (6认同)
  • 我更喜欢 `if x:` 而不是 `if x != 0:` 因为它更简单。“显式优于隐式”可用于证明`if x is True:` 甚至`if x == True:` 也是合理的。:-) (2认同)
  • @Alok:别傻了.这只是常识的应用."如果x!= 0"清楚地表明它是一个数字,在上下文中,因此有助于可读性.代码完全在某处或某处提到过,所以如果你不相信我就听那个人. (2认同)