728x90
반응형
안녕하세요. 스마트팩토리입니다.
파이썬 중급 #077 리스트 - 참조로 호출하기(call by reference)에 대해 알아보겠습니다.
1. 참조로 호출하기
참조로 호출하기
- 주소값이 호출되어 결과적으로 원본의 내용이 변경된다.
리스트와 같은 변수의 경우 참조(주소값)로 호출된다.
이에 리스트가 매개변수인 경우 그 값이 함수내에서 변경되면 메인 함수에서 변경된 값이 적용된다.
코드를 보면
def fcall(list):
list.append(10)
return list
list요소값으로 10을 추가하는 함수입니다.
list1=[]
for i in range(1,5):
list1.append(i)
리스트 요소에 1부터 4까지 요소를 넣었습니다.
print("list1 요소값 :",list1)
print("list1 주소값 :",id(list1))
메인 함수에서 리스트 값과 주소값을 출력합니다.
fcall(list1)
print("list1 요소값 :",list1)
print("list1 주소값 :",id(list1))
list1에 요소값이 추가된 것을 볼 수 있습니다. 이는 함수에서 주소값이 전달되어 해당 리스트에 요소값이 추가된 것입니다. 요소값이 전달되는 경우와 주소값이 전달되는 경우에 따라서 결과값이 달라질 수 있으니 그 차이를 꼭 알아두어야 합니다.
def fcall(list):
list.append(10)
return list
list1=[]
for i in range(1,5):
list1.append(i)
print("list1 요소값 :",list1)
print("list1 주소값 :",id(list1))
fcall(list1)
print("list1 요소값 :",list1)
print("list1 주소값 :",id(list1))
728x90
반응형
'Python' 카테고리의 다른 글
파이썬 중급 #080 리스트 - 조건이 붙는 리스트 함축 (0) | 2022.05.26 |
---|---|
파이썬 중급 #079 리스트 - 리스트 함축-거듭제곱 표현하기 [x**2 for x list] (0) | 2022.05.25 |
파이썬 중급 #077 리스트 - 값으로 호출하기(call by value) (0) | 2022.05.23 |
파이썬 중급 #076 리스트 - 깊은 복사(deep copy)-인덱스복사 (3) (0) | 2022.05.22 |
파이썬 중급 #075 리스트 - 깊은 복사(deep copy) (2) (0) | 2022.05.21 |
댓글