Search
📝

TIL 22/07/26 (화)

TIL (Today I Learned)

함수와 메서드

함수: 모든 자료형에 사용 가능
메서드: 특정 자료형에 한정해서 사용 가능

Mutable & Immutable

Mutable: 저장된 값 변경 가능. ex) 리스트
Immutable: 저장된 값 변경 불가능. ex) 문자열
문자열의 replace() 같이 값 변경이 가능해 보이는 메서드는 실질적으로 그 값을 변경하는 게 아니라, 값을 변경한 내용을 새로운 곳에 저장해서 반환하는 것

얕은 복사와 깊은 복사 (Shallow Copy & Deep Copy)

할당 (Assignment)

얕은 복사 (Shallow Copy)

깊은 복사 (Deep Copy)

WIF (What I Felt)

함수와 메서드의 차이
결국 둘 다 함수인 것은 동일하다..!
메서드는 컨테이너에 종속적이라 함수보다 더 작은 개념일 뿐!
→ 그 동안 메서드와 함수는 본질적으로 같다는 것을 모르고 있었다… 객체 지향 공부할 때 더 자세히 들어가 보자!
Mutable과 Immutable
각각의 자료형이 불변형인지, 가변형인지 파악..!
불변형은 값을 변경하게 되면 같은 주소의 값을 수정하는 게 아니라, 새로운 주소를 가진 객체에 복사를 하게 되는 것
할당, 얕은 복사, 깊은 복사
할당은 같은 주소의 객체에 포스트잇 붙이기
얕은 복사는 새로운 객체에 동일한 값들을 저장
하지만 리스트 안의 리스트는 기존의 동일한 객체를 참조하고 있다는 것을 주의!
위의 모든 애로사항을 타파하기 위해선 deepcopy()를 사용
→ 손으로만 익어서 쓰던 부분들을 왜 그렇게 써야 하는지 알게 되는 시간들이다..
특히 2차원 리스트 생성 시, 단순 * 가 아닌 리스트 컴프리헨션을 쓰던 이유를 알 수 있게 됐다.