In-Place & Out-Place Operators(복사본)

류한선·2025년 7월 3일

실기연습-2

목록 보기
76/95
  1. In-Place Operators
a = 5
a += 1
a # a의 경우, 현재 int형으로 원시자료형이다. 즉, 불변타입! 따라서, 불변형의 경우 수정이 필요할 때 새로운 객체를 생성한다.
 - 기존 객체를 수정 시도하고, 불가능할 시 새로운 객체 생성 (계산 전, 이전 값이 별도로 필요하지 않다면 이를 사용함
  • 장점 : 추가 메모리 할당 없이 기존 할당된 메모리를 그대로 사용하므로 메모리 효율화와 속도 향상 기대가 가능해진다.
    (특히, 배열의 크기가 클수록 할당에 시간이 오래 소요되므로 더 큰 차이가 발생한다.)

  • 예시 : +=, -=, *=, /=

  1. Out-Place Operators
a = 5
a = a+1
a # 새로운 객체 생성
 - 명시적으로 새로운 객체 생성
  1. 예시
a = 10            # int는 불변 타입
b = a             # a와 b는 같은 메모리 주소를 가르침
a += 1            # a는 불변 타입 -> 수정이 필요할 경우에 새로운 객체 생성해서 할당
a,b, a is b       # a가 새로 할당되었기 떄문에 a is not b! 
(11, 10, False)

a = [1,2,3]       # List는 가변 타입
b = a             # a, b는 같은 메모리 주소를 가르침
a += [4]          # a는 가변 타입 -> 원 객체를 수정 (in-place)
a, b, a is b      # a의 메모리 주소는 변함 없음!
([1,2,3,4], [1,2,3,4], True)

a = a + [5]       # out-place 연산   
a, b, a is b           
([1,2,3,4,5], [1,2,3,4], False)

0개의 댓글