https://github.com/LeeHyungSeop/Python-Syntax/blob/main/Intermediate/02_im_mutable_object.ipynb
의도 : add_last() 함수에 두 object를 전달하여 concat연산을 하고 싶음.
같은 함수를 호출했는데도
mutable type인 list로 argument를 전달했을 때는 의도에 맞게 작동하지만,
immutable type인 tuple로 argument를 전달했을 때는 의도에 맞게 작동하지 않음.
immutable type인 tuple을 argument로 넘겼을 때는
원본 tuple이 변경되지 않기 때문에 넘겨준 변수 t와 함수에서 받은 m은 서로 다른 object이다.
따라서 의도에 맞는 함수를 작성하기 위해서는 immutable type에 대한 함수를 새로 정의해서
함수에서 새로 만들어진 변수 m을 return해줘야 한다.
의도 : min_max()함수에서 list의 min, max value를 print. (original list는 변경되지 않아야 함)
아래 코드의 문제점 :
list는 mutable type이기 때문에 min_max()에서 원본 list인 을 그대로 sort했기 때문에 원본이 바뀜.
min_max() 함수에서 원본 list 의 내용을 그대로 가지는 새로운 object 를 생성하고,
새로운 object 를 sort해야 한다.
결론 : python 내에서 reference하는 object의 type(성격 mutable? immutable?)을 구분하고 그에 맞게 함수를 정의해야 한다.