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

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

DDD
DDD원래의
2024-11-03 17:05:03821검색

How to Create Truly Independent Copies of Objects in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.