两种检查空字符串的方法之间的差异

时间:2015-10-07 07:47:10

标签: python string

这两种方法有什么区别?

if myString == ""

if not myString:

我在询问前阅读了Most elegant way to check if the string is empty in Python?,但没有澄清他们之间的区别。

1 个答案:

答案 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
相关问题