for 반복문에서 built-in function인 next를 호출하고 이 next에서 special method인 __next__를 호출합니다. for문에서 직접 __next__를 호출하는 게 아닙니다.
+0
2022년 8월 16일
list(range(1, 4))는 형변환이라기보다는 iterable로 부터 list 객체를 생성하는 list 클래스의 생성자 유형 중 하나의 동작입니다. 이 과정에서 타입의 변경은 일어나지 않습니다. range 객체는 그대로 있고, 그것을 참고해서 새로운 list가 생성되는 것이니까요. 파이썬에서 타입은 (타입 힌트를 제외하고) 변수(이름)가 아닌 값(객체)에 존재하므로, 이 경우를 형변환이라고 볼 수 없습니다.
+0
2022년 8월 16일
덧붙이자면, range는 range 클래스의 생성자이므로 리스트가 아닌 range 객체를 리턴합니다. range는 파이썬 3부터는 클래스고, 이터러블(더 구체적으로는 튜플과 같은 시퀀스 - 서브스크립션 및 슬라이싱이 가능합니다.) 타입입니다. 리스트도 뮤터블 시퀀스이므로, 비슷한 사용성을 가지지만 엄연히 다른 크래스인 만큼, 차이점이 존재합니다.
댓글 4개