多くの場合、Python インタープリターでその部分を見ることで、Python コードが何をしているかを知ることができます。
>>> vars_of_interest
('AA_PYTHON', 'GG_POST_DEV_ELMO', 'GG_DEBUG_ELMO')
>>> import os
>>> [(var, os.getenv(var, 0)) for var in vars_of_interest]
[('AA_PYTHON', 0), ('GG_POST_DEV_ELMO', 0), ('GG_DEBUG_ELMO', 0)]
>>> env = dict((var, os.getenv(var, 0)) for var in vars_of_interest)
>>> env
{'AA_PYTHON': 0, 'GG_DEBUG_ELMO': 0, 'GG_POST_DEV_ELMO': 0}
env = dict(...)
を作りenv
ますdict
。オブジェクトが何であるかわからない場合は、いつでもそのタイプを尋ねることができます:
>>> type(env)
dict
Adict
は、キーと値の間のマッピングです。この場合、は などの文字列と などの値env
の間のマッピングです。'AA_PYTHON'
0
var
ジェネレータ式で使用される一時変数です
((var, os.getenv(var, 0)) for var in vars_of_interest)
ジェネレーター式のfor var in vars_of_interest
は、 Python に tuple 内のアイテムを反復処理し、ループを反復するときに値を 1 つずつvars_of_interest
割り当てるように指示します。var
ジェネレータ式はイテレータです。(var, os.getenv(var, 0))
イテレータはfor eachの値を生成しますvar
。
式(var, os.getenv(var, 0))
は、キーと値のペアと考えることができるタプルです。var
はキー、os.getenv(var, 0)
は値です。os.getenvは環境変数var
(例: 'AA_PYTHON'
) を検索し、存在する場合は環境変数の値を返し、存在しない場合は 0 を返します。
dict
式で行われているように、キーと値のペアの反復子が渡される場合
dict((var, os.getenv(var, 0)) for var in vars_of_interest)
dict
指定されたキーを指定された値にマップする を返します。
Python dictsの詳細については、こちらを参照してください。