본문 바로가기

프로그래밍 언어/python

Python에서 Call By Reference 구현하는 법

핫한(?) GPT 에게 물어 보았다.

--> 가변 객체를 함수 인자로 넘기라고 한다.

 

 

기본 지식으로...

 

파이썬은 Passed by Assignment 라고 한다. 즉, 어떤 값을 넘기느냐에 따라 Call By Value 혹은 Call By Reference로 동작할 수 있다고 한다.

 

int, float와 같은 불가변(immutable)인자를 함수로 넘기면 call-by-value가 되고, list, tuple, dict과 같은 가변(mutable) 인자를 함수로 넘기로 넘기면 call-by-reference 로 동작한다.

(정확하게 말하면, 파이썬은 모든 것이 객체 이기 때문에 가변 객체는 함수 안에서 새로운 값을 생성하지 않고, 불가변 객체는 새로운 값을 생성하기 때문에 각각 Call-by-reference, Call-by-value로 동작하는 것 처럼 보이는 것이라 한다)

 

 

https://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference

 

How do I pass a variable by reference?

Are parameters passed by reference or by value? How do I pass by reference so that the code below outputs 'Changed' instead of 'Original'? class PassByReference: def __init__(self): self.

stackoverflow.com

 

반응형

'프로그래밍 언어 > python' 카테고리의 다른 글

self의 의미  (0) 2023.03.27
파이썬 프로퍼티(Property)  (0) 2023.01.08
Data Classes  (0) 2022.12.11
[OS] python 과 실행파일  (0) 2021.04.09
경로 유틸리티  (0) 2021.02.07