Python에서 객체 복제: 종합 안내서
객체 복사본을 만드는 것은 Python 프로그래밍의 기본 작업이며, 특히 복잡한 데이터를 다룰 때 더욱 그렇습니다. 구조. 이 기사에서는 Python의 복잡한 객체 복사에 대해 자세히 설명합니다. 특히 원본 변경 사항에 영향을 받지 않는 독립적인 객체를 만드는 데 중점을 둡니다.
얕은 복사와 심층 복사
Python에는 객체를 복사하는 두 가지 기본 방법, 즉 얕은 복사와 깊은 복사가 있습니다. 얕은 복사는 원본과 동일한 변경 불가능한 필드(예: 정수, 문자열)를 참조하지만 변경 가능한 필드(예: 목록, 사전)의 새 복사본을 생성하는 새 객체를 생성합니다.
예를 들어 다음을 고려하세요. 코드 조각:
<code class="python">original_list = [1, 2, 3] new_list = original_list[:] # Shallow copy</code>
new_list와 Original_list는 별도의 개체로 보이지만 둘 다 동일한 기본 데이터를 참조하므로 한 목록에 대한 모든 변경 사항은 다른 목록에 반영됩니다.
완전히 독립적인 객체 생성
진정으로 독립적인 객체를 생성하려면 딥 카피에 의존해야 합니다. 여기에는 중첩된 변경 가능한 구조를 포함하여 모든 필드의 새 복사본을 만드는 작업이 포함됩니다. Python의 copy.deepcopy() 함수가 이 기능을 제공합니다.
이전 예제를 수정해 보겠습니다.
<code class="python">import copy original_list = [1, 2, [4, 5]] new_list = copy.deepcopy(original_list)</code>
이제 new_list를 변경해도 Original_list에는 영향을 미치지 않습니다.
<code class="python">new_list[2].append(6) print(original_list) # Output: [1, 2, [4, 5]] print(new_list) # Output: [1, 2, [4, 5, 6]]</code>
결론
프로그래머는 copy.deepcopy() 함수를 활용하여 객체의 완전히 독립적인 복사본을 생성하여 하나의 변경 사항이 다른 객체에 영향을 미치지 않도록 할 수 있습니다. . Python에서 효과적인 객체 조작을 위해서는 얕은 복사와 깊은 복사의 차이점을 이해하는 것이 중요합니다.
위 내용은 Python에서 진정으로 독립적인 개체 복사본을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!