【发布时间】:2011-08-22 19:20:25
【问题描述】:
我一直以if not value 的风格进行编码,但是,一些指南引起了我的注意,虽然这种风格有效,但它似乎有两个潜在的问题:
- 它不完全可读;
if value is None肯定更容易理解。 - 这可能会在以后产生影响(并导致细微的错误),因为像
[]和0这样的东西也会评估为False。
我也开始将这个想法应用到其他比较中,例如:
-
if not value与if value is False -
if not value与if value is []
列表也是如此......
问题是,你在原则上走了多远?在保证代码安全的同时,在哪里划清界限?
无论如何我都应该使用if value is None 样式吗?
【问题讨论】:
-
Python 的写作学科之一是 duck 打字。如果是
None、[]、0等,则表示If something looks like nothing, acts like nothing then it is nothing.如果您需要更明确地了解正在测试的值,请使用==。
标签: python comparison boolean readability