这两种方法有什么区别?
if myString == ""
if not myString:
我在询问前阅读了Most elegant way to check if the string is empty in Python?,但没有澄清他们之间的区别。
答案 0 :(得分:2)
这两种方法都会告诉你,给定一个字符串对象foo
,它是否为空字符串:
>>> foo = ''
>>> foo == ''
True
>>> not foo
True
>>> foo = 'foo'
>>> foo == ''
False
>>> not foo
False
但是,给定一个任意对象bar
,你会得到不同的结果:
>>> bar = [] # empty list
>>> bar == ''
False # isn't an empty string
>>> not bar
True # but is still empty
测试真实性适用于许多不同类型的对象(请参阅the docs),因此只要您有"空" ,not x
就会告诉您对象,但x == ''
只会告诉您是否有空字符串。您需要哪种行为取决于您所处的情况:
not
更整洁); == ''
;和not
。