인프런 커뮤니티 질문&답변

sungkun.jeong님의 프로필 이미지
sungkun.jeong

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

시퀀스(4-1)

질문있습니다! read only dict 관련

작성

·

239

0

from types import MappingProxyType

d = {'key1': 'value1'}

# Read Only
d_frozen = MappingProxyType(d)

#d_frozen['key1'] = 'value2'
print(d, id(d))
print(d_frozen, id(d_frozen))
print(d is d_frozen, d == d_frozen)
d['key1'] = 'value2'
print(d_frozen, id(d_frozen))
 
결과가..
{'key1': 'value1'} 1996092114944 {'key1': 'value1'} 1996091990176 False True {'key1': 'value2'} 1996091990176
여기서 d_frozen은 안바껴야되는거 아닌가요?ㅎㅎㅎ
분명 강의에서 d_frozen은 수정불가로 배웠는데...질문드립니다!

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

d_frozen을 직접 수정하셔야 수정 불가한 메세지를 확인할 수 있어여~

불변에 담기전 d 변수는 수정이 가능합니다.

sungkun.jeong님의 프로필 이미지
sungkun.jeong
질문자

빠른 답변 감사드립니다. 다만 d_frozen을 미리 선언해두고 

그 다음 d를 바꾸었으면, d_frozen은 수정불가능하니까 유지되어야 하지 않나 싶어서요.

d를 바꾸면 d,d_frozen 모두 변경되어서 여쭈었습니다.

sungkun.jeong님의 프로필 이미지
sungkun.jeong

작성한 질문수

질문하기