質問

可能な重複:
簡単にチェック変数が定義された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。参照カウントがゼロになったときに、オブジェクトのデストラクタが呼び出されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top