する場合変数が定義されたPython[複製]
質問
可能な重複:
簡単にチェック変数が定義されたpython?
確認方法を教えてください場合には、変数が存在するPython?
どうするかどうかの変数に設定されてい特定のコードで実行?これは必ずしも明らかで(1)可変できる条件の設定、(2)可変できる条件削除されます。私のようなもの defined()
Perlや isset()
PHPや defined?
Ruby.
if condition:
a = 42
# is "a" defined here?
if other_condition:
del a
# is "a" defined here?
解決
try:
thevariable
except NameError:
print("well, it WASN'T defined after all!")
else:
print("sure, it was defined.")
他のヒント
'a' in vars() or 'a' in globals()
、あなたも
組み込みコマンドを確認することができます
'a' in vars(__builtins__)
私はそれが事態を避けるために、より良いことだと思います。書き込みへのそれのクリーナーと明確ます:
a = None
if condition:
a = 42
try:
a # does a exist in the current namespace
except NameError:
a = 10 # nope
この状況ることが必要な場合があります:
ご利用の場合 finally
ブロックにあるもの try
ブロック、プログラム終了と sys.exit()
前の接続が定義されています。この場合、 finally
ブロックのまま呼び出され、接続決に失敗して接続を作成します。
は、この特定のケースでは、それはa = None
の代わりにdel a
を行う方が良いでしょう。これは、オブジェクトa
に参照カウントをデクリメントします(もしあれば)に割り当てられ、a
が定義されていない場合失敗することはありませんでした。注、そのdel
文は直接オブジェクトのデストラクタを呼び出すことはありませんが、変数から、それUNBIND。参照カウントがゼロになったときに、オブジェクトのデストラクタが呼び出されます。
所属していません StackOverflow