10
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}

この行動の不一致の理由は何ですか?

4

1 に答える 1

14

dict 内包表記とジェネレーター内包表記は、独自のローカル スコープを作成します。リスト内包表記は Python 2.x にはありませんが、Python 3 にはあります。

于 2012-10-29T06:49:09.873 に答える