-
[Python] - Cyclic reference개발/Python 2022. 9. 19. 01:47
Python은 Garbage Collection 관리 시 Reference를 Counting하는 방식 우선시하여 메모리를 다룹니다.
이 떄 발생하는 문제점인 Cyclic reference를 다루어보겠습니다.
순환 참조 ( Cyclic reference )
- 직관적이며, Object를 카운터하며 0이 되면 Object를 삭제하는 식으로 GC(reference counting)가 동작한다.
- 해결 할 수 없는 한가지 경우가 생기는데, 두 객체가 서로를 참조하게 되는 경우에서 하나를 삭제하더라도 나머지 Object의 Count는 1개 이기 때문에 Object는 삭제 할 수 없습니다.
예시
my_dict1 = {} my_dict2 = {} my_dict1['dict2'] = my_dict2 my_dict2['dict1'] = my_dict1 del my_dict1, my_dict2
class MyClass(object): pass a = MyClass() a.obj = a del a
'개발 > Python' 카테고리의 다른 글
[Python] import vs runtime (0) 2022.09.26 [Python] - Requirements (1) 2022.09.26 [Python] - Garbage Collection (0) 2022.09.19 [Python] - 동작원리( Build , hybrid ) (0) 2022.09.18 [Python] - Decorator (0) 2022.09.02