2017-06-12 5 views
0

したがって、特定の変数 "abc"が存在し、それが真であるかどうかを確認して確認します。変数が存在し、Falseであれば、それを他に移動したい。ここで私はそれがどのようにPythonで動作するようになったのですか:環境変数が存在し、Trueに設定されているかどうかをチェック

env = os.environ.copy() 
if "abc" in env and env['abc'] == "True": 
    print "Works" 
else: 
    print "Doesn't work" 

良い方法がありますか?

+0

'env.get(「ABC」、False)が== true'を – inspectorG4dget

+0

すべてのお互いの10秒内で同一の回答の文字列が印象的だったこと... – Aaron

+3

あなたが実際に値の文字列を探しています"True"、またはブール値「True」を探していますか? – idjaw

答えて

3

あなたは変数がglobals()locals()によって返された辞書であるかどうかを確認することができます。ローカル変数のために

を(完全なコードを追加するために私を思い出させるためにアーロンに感謝):

if locals().get('abc'): 
    print(abc) 

グローバル変数の場合:環境変数の

if globals().get('abc'): 
    print(abc) 

if os.environ.get('abc')=='True': 
    #abc is set to True 

詳細情報はこちら

https://docs.python.org/3/library/functions.html#locals https://docs.python.org/3/library/functions.html#globals

+1

もし完全なら、 'locals().get( 'abc')== True:'(または ' ... globals()... ') – Aaron

+0

@Aaron Python 2.7.9で動作させる方法はありますか? – Jason

+0

@Jasonそれはすでに動作するはずです – Aaron

0

あなたは使用することができます。

env.get("abc", False) 

falseは "ABC" はENVにない場合、デフォルト値です。それはENVからそれを得るだけで十分です

0

、私は

env.get('abc') 
1

あなたがブロックを除いてみてくださいを使用できると思います。

try: 
    # Try calling ABC here anyway you like 
    # Here I am just printing it 
    print(abc) 
except NameError: 
    print("Variable ABC does not exist") 
+1

このようにすれば、例外を盲目的にキャッチするのではなく、 'exceptError:'を実行する必要があります。 – trentcl

関連する問題