개발자 99% 커뮤니티에서 수다 떨어요!
weakref - Weak references - Python 3.9.1 documentation
메모리가 생성될때 그것을 저장하는 딕셔너리가 있다고 하자
메모리들은 딕셔너리때문에 레퍼런스카운트가 남아서 가비지 컬렉션을 통해 그 메모리들을 더이상 재사용할수 없개된다
이때 약한 참조라는 새로운 참조 레벨을 도입할 수 있다
예를 들어서 weekref모듈에는 WeekKeyDictionary라는 dict타입의 클래스가 있는데 이 딕셔너리에 객체를 지정할때는 일반적인 강한 참조(strong ref)가 아니라 약한(weak ref) 참조를 사용한다.
해당 객체에 강한 참조가 하나도 남지 않았을 경우, 약한 참조만 남아있는 경우
즉, 여기서는 WeekKeyDictionarty에만 들어있고 다른 참조가 없는 경우 가비지 컬랙터가 객체를 지울수 있게 된다.
필요한 상황에 이렇게 메모리 누수를 해결할 수 있다