list.__iadd__와 list.__add__의 차이점 이해
Python에서 객체는 상호 작용을 지원하기 위해 특별한 "마법의" 메서드를 정의할 수 있습니다. 특정 운영자와 함께. 이러한 두 가지 메소드는 각각 내부 추가 작업과 일반 추가 작업에 사용되는 iadd 및 __add__입니다.
다음 두 코드 조각을 고려하세요.
<code class="python"># Example 1 x = y = [1, 2, 3, 4] x += [4] print(x) # [1, 2, 3, 4, 4] print(y) # [1, 2, 3, 4, 4] # Example 2 x = y = [1, 2, 3, 4] x = x + [4] print(x) # [1, 2, 3, 4, 4] print(y) # [1, 2, 3, 4]</code>
왜 해야 할까요? 이 두 예는 다르게 동작하나요?
두 경우 모두 두 개의 동일한 목록 x와 y로 시작하고 x = [4] 또는 x = x [4]를 사용하여 덧셈 연산을 수행합니다.
x = [4]를 사용하면 Python의 __iadd__ 메서드가 호출되어 내부 추가를 수행합니다. 이는 원래 목록 x가 변경되고 해당 내용이 목록 [4]의 요소로 업데이트됨을 의미합니다. 결과적으로 이제 x와 y 모두 동일한 수정된 목록을 포함합니다.
반대로 x = x [4]를 사용하면 Python의 __add__ 메서드가 호출되어 두 x의 요소가 포함된 새 목록을 반환합니다. 그리고 [4]. 원래 목록 x는 변경되지 않고 그대로 유지되며 y는 여전히 수정되지 않은 초기 목록을 가리킵니다.
위 내용은 `list.__iadd__`와 `list.__add__`의 차이점은 무엇이며 Python에서 목록을 수정할 때 왜 다른 결과가 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!