7
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
この不一致の原因は何ですか?Pythonのスコープ内での補完
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
この不一致の原因は何ですか?Pythonのスコープ内での補完
ディクテーションとジェネレーターの解説は、独自のローカルスコープを作成します。リスト内包はPython 2.xではなくPython 3で実行されます(最初の例はdictの理解ではありません。ちょうどリテラルdictのようなもので、キー0の値として表現されます)