如何在Python中测试变量是否为空

88
val = ""

del val

if val is None:
    print("null")

我运行了上面的代码,但是得到了NameError: name 'val' is not defined错误。

如何判断一个变量是否为空,并避免出现 NameError 错误?


1
你可以使用 try: except 块来检查错误是否被抛出。 - Ludisposed
5
这不是一个“null”变量 - 变量不存在...某物不存在和存在但具有“null”值(Python中通常为None单例)之间存在明显的区别。 - Jon Clements
3个回答

132

测试指向None的名称和存在的名称是两个语义上不同的操作。

要检查val是否为None

if val is None:
    pass  # val exists and is None

检查名称是否存在:

try:
    val
except NameError:
    pass  # val does not exist at all

13
try:
    if val is None: # The variable
        print('It is None')
except NameError:
    print ("This variable is not defined")
else:
    print ("It is defined and has a value")

5
您可以在try和catch块中实现这个功能:
try:
    if val is None:
        print("null")
except NameError:
    # throw an exception or do something else

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接