"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 진정으로 독립적인 개체 복사본을 만드는 방법은 무엇입니까?

Python에서 진정으로 독립적인 개체 복사본을 만드는 방법은 무엇입니까?

2024년 11월 16일에 게시됨
검색:395

How to Create Truly Independent Copies of Objects in Python?

Python에서 객체 복제: 종합 가이드

객체 복사본을 만드는 것은 Python 프로그래밍의 기본 작업이며, 특히 복잡한 데이터를 다룰 때 더욱 그렇습니다. 구조. 이 기사에서는 Python의 복잡한 객체 복사에 대해 자세히 설명합니다. 특히 원본에 대한 변경 사항에 영향을 받지 않는 독립적인 객체를 만드는 데 중점을 둡니다.

얕은 복사와 깊은 복사

Python에는 객체를 복사하는 두 가지 기본 방법, 즉 얕은 복사와 깊은 복사가 있습니다. 얕은 복사는 원본과 동일한 변경 불가능한 필드(예: 정수, 문자열)를 참조하는 새 객체를 생성하지만 변경 가능한 필드(예: 목록, 사전)의 새 복사본을 생성합니다.

예를 들어 다음을 고려하세요. 코드 조각:

original_list = [1, 2, 3]
new_list = original_list[:]  # Shallow copy

new_list와 원본 목록은 별도의 개체로 보이지만 둘 다 동일한 기본 데이터를 참조하므로 한 목록에 대한 모든 변경 사항은 다른 목록에 반영됩니다.

완전히 독립적인 객체 생성

진정으로 독립적인 객체를 생성하려면 심층 복사에 의존해야 합니다. 여기에는 중첩된 변경 가능한 구조를 포함하여 모든 필드의 새 복사본을 만드는 작업이 포함됩니다. Python의 copy.deepcopy() 함수가 이 기능을 제공합니다.

이전 예제를 수정해 보겠습니다.

import copy

original_list = [1, 2, [4, 5]]
new_list = copy.deepcopy(original_list)

이제 new_list를 변경해도 원본_목록에는 영향을 미치지 않습니다.

new_list[2].append(6)
print(original_list)  # Output: [1, 2, [4, 5]]
print(new_list)       # Output: [1, 2, [4, 5, 6]]

결론

copy.deepcopy() 함수를 활용하여 프로그래머는 객체의 완전히 독립적인 복사본을 생성하여 하나의 변경 사항이 다른 객체에 영향을 미치지 않도록 할 수 있습니다. Python에서 효과적인 객체 조작을 위해서는 얕은 복사와 깊은 복사의 차이점을 이해하는 것이 중요합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3