파이썬 중급_006_객체와 메모리

이새롬·2023년 2월 6일
0

python

목록 보기
10/21
post-thumbnail

1. 객체와 메모리

변수는 객체의 메모리 주소를 저장하고 이를 호출하여 객체를 참조한다.
(그래서 레퍼런스 변수라고도 부른다, 속성 수정 시 변수에 갖고있는 정보를 변경하면
주소를 타고들어가 객체의 속성도 수정된다.)

1) 얕은 복사 :

rb1 = Robot('red',200,80)
rb2 = Robot('blue',300,120)
rb3 = rb1  

이 때, 객체가 복사된 것이 아닌 rb1의 주소지가 복사된 것임.
( 한 객체로 주소지 같이 사용 하는 것임)
💡 rb3의 속성 수정하면 rb1의 내용도 수정된다. (주소지가 같기때문!)

2) 깊은 복사 :

객체 자체를 복사는 하는 것으로 또 하나의 객체가 생성된다.
( 똑같은 객체가 2개 생성) 한쪽을 수정해도 다른 객체의 내용엔 영향이 없음

3) 변수가 리스트일 때 하는 깊은 복사 방법

✔️ 리스트 자체적으로 갖고있는 copy()함수
변수명 = 복사할 변수명.copy()

✔️ for문+ append 함수
리스트 일때, for문을 돌려 내용 복사 (각 객체인데, 내용을 복사해주는 개념)****

for s in scores:
     scoreCopy.append(s)

✔️ extend 함수
변수명.extend(복사할 변수)

✔️ 슬라이싱
변수 = 복사할 변수명[:]

0개의 댓글