这些方法之间是否存在与实现相关的低级差异(性能方面的差异)。。?
# check if string is empty
# the preferred way it seems [1]
if string:
print string
else:
print "It's empty."
# versus [2]
if string is '':
# or [3]
if string == '':
例如,在测试None
时,我仍然发现它更具可读性和明确性:
if some_var is not None:
…而不是。。
if not some_var:
if not some_var
,至少对我来说,总是读“如果某个变量不存在”。
哪个更好用,什么是==
,is
和bool测试的正确用例?
关于蒂姆·皮茨克的回答:
这将测试
string
的计算结果是否为True。一、 E所以它不仅测试它是否为空,而且测试它是否为
None
或空。这可能会产生影响,这取决于您如何处理None
/empty。切勿使用
is
进行(值)相等测试。仅用于测试对象标识。它可能适用于示例if string is ''
,但这依赖于实现,您不能依赖它。除此之外,使用最能传达代码含义的东西。
我更喜欢较短的
if string:
,但是if string != '':
可能更明确。然后
if variable:
同样适用于每种对象,因此如果variable
不局限于一种类型,这比if variable != "" and variable != 0:
等要好首先,不要使用
if string is '':
,因为这不能保证工作。CPython实习生短字符串是一个实现细节,不应该依赖这个事实。我认为,使用
if string:
检查string
是否为非空是一种python方法。但是使用
if string == ''
并没有什么错误。相关问题 更多 >
编程相关推荐