2016-05-01 7 views
2

変数が存在するかどうかを調べるには、次のメソッドisset(var)を使用しています。変数が存在するかどうかをチェック

def isset(variable): 
    try: 
     variable 
    except NameError: 
     return False 
    else: 
     return True 

変数がある場合はTrueを返します。しかし、変数が存在しない場合、私は次のようになります:

Traceback (most recent call last): 
    File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 
    File "/usr/lib/python2.7/runpy.py", line 72, in _run_code 
    exec code in run_globals 
    File "/home/lenovo/pyth/master/vzero/__main__.py", line 26, in <module> 
    ss.run() 
    File "vzero/ss.py", line 4, in run 
    snap() 
    File "vzero/ss.py", line 7, in snap 
    core.display() 
    File "vzero/core.py", line 77, in display 
    stdout(session(username())) 
    File "vzero/core.py", line 95, in session 
    if isset(ghi): #current_sessions[user]): 
NameError: global name 'ghi' is not defined 

これらのエラーはすべて欲しいものではありません。私はそれがFalseを返すだけです。出力はありません。これどうやってするの?代わりに、複雑なヘルパー関数issetを書いて、あなたは、変数の存在をか確認したい場所に

if not isset('variable_name'): 
    # handle the situation 

それを呼び出すの

+1

あなたの機能が動作しません、存在しない関数に変数を渡しているからです。さもなければあなたのコードは大丈夫です。 –

答えて

2

try: 
    # some code with the variable in question 
except NameError: 
    # handle the situation 
+0

実際、スタックフレームについては、私が考えることさえできないことを指摘しています。 +1 –

関連する問題