7
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
Jaki jest powód tej niezgodności w zachowaniu?Określenie zakresu w języku Dicta
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
Jaki jest powód tej niezgodności w zachowaniu?Określenie zakresu w języku Dicta
Zrozumienie tekstu i generowanie wyrazów generujących tworzy własny zakres lokalny. Zrozumienie listy nie występuje w Pythonie 2.x, ale w Pythonie 3. (Zauważ, że twój pierwszy przykład nie jest rozumieniem dyktowania.) Jest to po prostu dosłowny dykt, który ma wyrażenie jako wartość dla klucza 0.)