얇은 복사 copy() , 깊은 복사 deepcopy()

minsing-jin·2023년 10월 17일
0
post-thumbnail

문제상황

  • 테스트 코드를 만들기 위해서 원본 document를 깊은 복사로 사본을 만들려고 했는데 copy모듈 import해놓고, 뿌듯하게 copy() 메서드를 써놓고서는 왜 깊은 복사가 안되는거지 삽질을 하고 있었음.
    -> 해결: copy 모듈을 import것은 동일하나 copy모듈의 deepcopy를 사용해서 해결

얇은 복사 vs 깊은 복사

  • 얇은 복사는 방법이 많아서 깊은 복사 먼저 설명하겠다.

깊은 복사(Deep copy)

방법

  • copy.deepcopy(자료)

원리

  • 원본을 다른 메모리에 할당

얇은 복사(Shallow copy)

방법

  • 대입(=)
  • [:] 슬라이싱
  • 객체.copy
  • copy.copy

원리

  • 대입(=): 원본의 정보가 저장되어있는 메모리 주소를 다른 사본 변수가 동일하게 가리키는 방식(주소값이 같다)

  • 슬라이싱, 객체.copy, copy.copy:

참고문헌:
https://blockdmask.tistory.com/576

profile
why not? 정신으로 맨땅에 헤딩하고 있는 코린이

0개의 댓글