7
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
왜 이러한 동작의 불일치가 발생합니까?dict comprehension에서 파이썬 범위 지정
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
왜 이러한 동작의 불일치가 발생합니까?dict comprehension에서 파이썬 범위 지정
Dict 내재와 생성자 내포는 자체 로컬 범위를 만듭니다. List comprehensions은 Python 2.x에서는 아니지만 Python 3에서 사용됩니다 (첫 번째 예제는 dict comprehension이 아니며, 키 0의 값으로 표현식을 사용하는 문자 그대로의 dict 일뿐입니다).