[Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] 개념 정리
1) 함수의 인수와 매개변수
def func(n):
print(func(n))
call by object reference
파이썬에서 인수전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입하는 방식
값에 의한 호출 (call by value)
: 실제 인수값을 매개변수에 복사하는 값에 의한 호출
참조에 의한 호출 (call by reference)
: 실제 인수의 참조를 매개변수에 복사하여 매개변수가 실제 인수와 같아지는 참조에 의한 호출
매개변수와 실제 인수
실행시점
: 매개변수는 실제인수와 같은 객체 참조
함수에서 매개변수 변경시
1) 인수가 immutable
: 매개변수 변경시 다른 객체 생성, 그 객체에 대한 참조로 업데이트
=> 매개변수 값 변경해도 호출하는 쪽의 실제 인수에는 영향 x
2) 인수가 mutable
: 매개변수 변경시 객체자체를 업데이트
=> 매개변수 변경시 호출하는 쪽의 실제 인수값을 변경
2) 객체의 복사
1) 얕은 복사
객체가 갖는 멤버값을 새로운 객체로 복사할 때 객체가 참조자료형의 멤버로 포함할 경우 (참조값만 복사하는 방식)
2) 깊은 복사
: 참조값 뿐만 아니라 객체 자체를 복사
: 객체가 갖는 모든 멤버(값과 참조 형식 모두) 복사하므로 전체복사라고 함
x = [[1, 2, 3], [2, 3, 4]]
y = x.copy()
# y 변경시
# 1)얕은 복사 : x 값도 변경됨
# 2)깊은 복사 : x 값은 변경 안됨
'Review > SW Jungle' 카테고리의 다른 글
[WEEK01] 복잡도 & 점근법 (0) | 2022.09.26 |
---|---|
[WEEK01] 검색 알고리즘 (선형검색 / 이진검색) + 트리자료구조 (0) | 2022.09.26 |
[WEEK01] 배열과 자료구조 (python) (0) | 2022.09.25 |
[WEEK01] 파이썬 개념 (0) | 2022.09.25 |
[WEEK01] 특별한 과제 (0) | 2022.09.24 |