반응형
아래 코드를 봅시다.
def add(lst) :
lst.append(6)
a=[1,2,3,4,5]
add(a)
이 코드에서 a를 출력하면 무엇이라고 나올까요? 아래와 같은 결과가 나옵니다.
>>> a
[1, 2, 3, 4, 5, 6]
함수에 변수가 입력되면 변수를 참조해서 가져오기 때문에 원래 변수가 변하게 됩니다.
변수를 참조하지 않고 가져오려면 아래와 같이 copy 함수를 사용해야 합니다.
def add(lst):
new_lst = lst.copy() # 또는 new_lst = list(lst)
new_lst.append(5)
return new_lst
a = [1, 2, 3, 4, 5]
result = add(a)
결과는 아래와 같습니다.
>>> a
[1, 2, 3, 4, 5]
반응형
'8. 함수 > 정의방법' 카테고리의 다른 글
[파이썬] 함수의 가변인자 입력값을 튜플로 넣는 법 (0) | 2023.05.26 |
---|---|
[파이썬] 함수에 여러 값 원하는 만큼 입력받기 (가변인자) (0) | 2023.05.26 |
[파이썬] 함수 밖에서 선언된 변수를 함수 안에서 변경하는 방법 (0) | 2023.05.06 |
[파이썬] 문자열 무제한 입력받고 원하는 구분자로 나눠서 합치는 함수 (0) | 2022.01.17 |
파이썬 함수 예시 (이름,나이,직업 입력하면 자기소개문장출력) (0) | 2021.10.25 |
댓글