Python에서는 Call by Object Reference 방식으로 함수인자를 전달해요.
Object가 mutable(변형 가능 - list 등)한지, immutable(변형 불가능 - int, float, string, tuple 등)한지에 대해서 다른 방식으로 작동합니다.
list의 경우 mutable object이기 때문에 함수인자로 넘기게 되면 값이 변하게 돼요. immutable object를 넘기는 경우에는 함수 내에서 변형이 이뤄지면 서로 다른 주소를 가리키게 됩니다.
t2018112072 2년 전
안녕하세요.. 코린이 탈출하고 싶은 마음에 하나하나 배워가는 대학생입니다 ㅠㅠ
지금 종만북 이라는 책을 이용해서 알고리즘을 공부하는 중입니다. 물론 c++로 구현된 예제 코드들이지만, 파이썬으로 옮겨서 구현하고 싶은 마음에 예제를 python으로 복습하는 중입니다.
제가 알기론 C++에서 벡터를 함수로 전달할때, 기본적으로는 call by value이고 역참조 연산자&를 함수 선언시 명시해야 call by reference라고 알고 있습니다. python에서는, 검색해보니 배열은 call by reference 형태로 전달된다고 하더군요..
그래서 제가 궁금한것은,
python의 배열을 함수의 인자로 넘기는것과 vs C++에서 vector를 call by reference로 함수에 넘기는것의 차이가 있을까요??
바보같은 질문일수도 있지만 c++의 코드중 vector만 python의 list로 바꾸어 구현하니 오류가 생기는 경우가 있어 질문드립니다..!