사용할 수 있다. 캐시가 참조하고 있다고 해서 캐시된 객체가 계속 남아 있을 필요는 없기 때문
이다.
NOTE
약한 참조는 아주 전문화된 주제이다. 따라서
2
판에서는 빼고, 대신 별도 웹사이트에 ‘약한 참조’라
는 주제로 게시했다(
https://fpy.li/weakref
).
5
6
.
7
파이썬이 불변형을 갖고 노는 비법
NOTE
이번 절은 읽지 않고 넘어가도 좋다. 파이썬 사용자에게는 그리 중요하지 않은 파이썬 구현에 관한
내용이며, 다른 파이썬 구현이나 심지어
CPython
의 나중 버전에는 적용되지 않을 수도 있다. 그렇지만 특수
한 상황에서
is
연산자를 잘못 사용하는 사용자들을 보아왔기에, 언급할 필요가 있다고 판단했다.
튜플
t
에 대해
t[:]
가 사본을 생성하지 않고 그 객체에 대한 참조를 반환한다는 사실을 알게
되었을 때 필자는 당황스러웠다.
tuple(t)
도 튜플
t
에 대한 참조를 반환한다.
6
[예제
6
-
17
]
은 이 사실을 입증한다.
예제
6-17
다른 튜플로 생성한 튜플은 사실 동일한 튜플이다.
>>> t1 = (1, 2, 3)
>>> t2 = tuple(t1)
>>> t2 is t1 ❶
True
>>> t3 = t1[:]
>>> t3 is ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.