#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목[re]정지영 교수님 리스트 관련 질문 있습니다!2020-04-27 20:40
작성자

꼭 method가 값을 복사하여 return 값을 가지는 것은 아닙니다. 후에 Class를 배우며 더 깊게 들어갈 문제이지만, capitalize 함수의 구현이 복사된 값을 return할 뿐입니다.

따라서, method가 return 값을 갖지 않을 수도 있으며 가진다고 해서 반드시 복사본일 필요는 없습니다.


1번에서 canada는 같은 메모리 주소를 갖게되어 list[0].append()를 실행하면 canada와 list[0]의 값이 모두 바뀌는 것이 맞습니다.


그러나 2번에서, life[0].append()을 실행하는 경우 life[0].append()의 결과 값이 canada에 할당되게 됩니다.

말씀 주신 것 처럼 append()의 return은 별다른 값을 갖지 않기 때문에 noneType이 canada에 할당됩니다.


앞서 말해드린 것과 같이 3번의 경우, capitalize 는 복사본을 return하는 method이기 때문에 첨부하신 결과와 같이 나옵니다.

아래 string의 method인 capitalize에 대한 문서를 남기겠습니다.

https://docs.python.org/3.8/library/stdtypes.html#str.capitalize 

댓글