본문 바로가기
Python

Python mutable, immutable, 클래스 default param, 얕은복사

by 오렌지마끼야또 2022. 6. 12.
728x90
반응형

 

 

 

 

클래스 내부에 default param을 넣고 싶으면 __init__ 메소드에 넣으면 된다.

 

mutable(가변) : list, dic, set, class

immutable(불변) : 숫자, string, tuple None

 

메소드에 default param 설정할 때 def aaa(data = p[1, 2, 3]): 처럼 mutable object가 들어가면 얕은 복사가 일어난다.

taxi2와 taxi3 인스턴스를 만들 때 아무 값도 주지 않아 __init__ 메소드에서 customer = [] 가 사용되었다.

이 때 []는 mutable object(list) 여서 얕은 복사가 일어나 taxi2와 taxi3가 같은 [] 를 가리키게 된다.

 

 

 

출처

https://testspoon.tistory.com/172

 

https://kirade.github.io/python/2018/02/15/python-%ED%95%A8%EC%88%98-%EC%9D%B8%EC%9E%90%EC%9D%98-%EA%B8%B0%EB%B3%B8%EA%B0%92-default-parameter-value/

 

 

 

 

 

728x90
반응형

'Python' 카테고리의 다른 글

Python list 관련  (0) 2022.06.13
Python print 방식  (0) 2022.06.13
Python 변수, 객체, 메모리영역, 참조  (0) 2022.06.12
Python iterable, iterator  (0) 2022.06.11
python remove(), del, pop()  (0) 2022.06.11

댓글