2017-05-12 7 views
4
val = "" 

del val 

if val is None: 
    print("null") 

私は上記のコードを実行しましたが、NameError: name 'val' is not definedを得ました。変数をテストする方法はPythonではnullです

変数がnullかどうかを判断し、NameErrorを回避するにはどうすればよいですか?

+1

'try:except'ブロックを使用して、エラーがスローされているかどうかを調べることができます – Ludisposed

+4

これは "null"変数ではありません - 変数**は存在しません** ... "null"値を持つ既存のものと既存のもの(Pythonでは普通は 'None'シングルトンです) –

答えて

11

Noneを指す名前のテストと既存の名前は、2つの意味的に異なる操作です。

valがNoneかどうかを確認するには、次の

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

を名が存在するかどうかを確認するには:

try: 
    val 
except NameError: 
    pass # val does not exist at all 
4
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") 
2

をあなたがしようとキャッチブロックでこれを行うことができます。

try: 
    if val is None: 
     print("null") 
except NameError: 
    # throw an exception or do something else 
関連する問題