Python 언어에서 Pass By Reference(참조 전달 방법) 방법은 어떻게 할까 고민을 하였습니다.
C/C++ 언어에서는 pointer를 이용 하면 될텐데....
아래와 같은 간단한 예제가 있습니다.
fun1()이라는 함수에서 넘겨받은 인자 값을 변하기를 원합니다.
def fun1(param1): param1 = "Changed" if __name__ == "__main__": a = "Hello" print(a) fun1(a) # fun1 함수 호출 후 a의 값이 변하기를 원함 print(a)
결과는 예상 했던 대로 값이 변하지 않습니다. 요즘 나오는 대부분의 언어들이 값에 의한 전달을 사용하고 있기 때문입니다.
Hello Hello
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
해결하는 방법은 class 를 이용해서 instance값을 전달하는 방법이 있겠습니다.
그런데 굳이 class를 만들지 않고 list를 이용하면 좀 더 쉽게 할 수 있습니다.
해결 소스
def fun1(param1): param1[0] = "Changed" if __name__ == "__main__": b = "Hello" a = [b] print(a[0]) fun1(a) print(a[0])
결과는 원하는 대로 나옵니다.
Hello Changed
댓글 없음:
댓글 쓰기