2016-05-29 4 views
0

変数が存在するかどうかをチェックし、変数が存在する場合はそれを印刷します。グローバル変数またはローカル変数があるかどうかを確認するにはどうすればいいですか

x = 10 

def example(): 

z = 5 

print("X (Global variable) : ",x) 
print("Z (example() : ",z) 

example() 

print(z) 

私がprint(z)を追加すると、zと呼ばれる変数がないため、明らかにエラーが発生します。

回答ありがとうございます。 (特別ジャスパー、Kevinとicantcode)

x = 10 
def example(): 

z = 5 

example() 


try: 
    print(z) 
except NameError: 
    print("There is no global variable called Z! ") 
+0

の辞書をチェックすることができ、 'Zは= 5はインデントされるはずですか?そうであれば、 'print(" Z(example(): "、z)'も 'NameError'になります。 – Jasper

+3

どのような状況であなたが定義した変数がわからないでしょうか? –

+0

あなたの場合、 –

答えて

3

それが何かを行うに失敗した場合、最も単純な方法は、それを使用しようとすることとなります

try: 
    something_with(z) 
except NameError: 
    fallback_code() 

あなたもlocals()globals()

if 'z' in locals() or 'z' in globals(): 
    print(z) 
else: 
    fallback_code() 
3

は方法locals()内蔵およびglobals()ローカル/グローバル変数名とその値の辞書を返します。

if 'z' in locals(): 
    print(z) 
+0

@ bonum77いいえ、どちらでもない可能性があります。 –

0
try: 
    print(z) 
except NameError: 
    print("No variable named z!") 

このコードトライのZ印刷するとZという名前の変数が存在しない場合、それは除いて下のコードを実行します。

+1

裸の 'except'を使ってはいけません。あなたは' print(locals()) 'や' print(globals()) ' 'NameError'を除きたいと思っています。 – Kevin

+0

編集してありがとうございました!私はPythonで傷つきません。 – ICantCode

関連する問題