프로그래밍과 데이터 in Pythonfor 반복문range 함수

Q

range함수 작동원리

조회 1558

좋아요 26

2020년 11월 15일




A
1개의 답변이 있어요



2020년 11월 15일 ()

댓글 4

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

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇