파이썬 생성자 실행시점 질문입니다.
class Student:
    def __init__(self, name, korean, math, english, science):
        self.name = name
        self.korean = korean
        self.math = math
        self.english = english
        self.science = science

    def get_sum(self):
        return self.korean + self.math +\
            self.english + self.science

    def get_average(self):
        return self.get_sum() / 4

    def to_string(self):
        return "{}\t{}\t{}".format(\
            self.name,\
            self.get_sum(),\
            self.get_average())


# 학생 리스트를 선언함
students = [
   Student("박인성", 87, 98, 88, 95),
   Student("연하진", 92, 98, 96, 98),
   Student("구지연", 76, 96, 94, 90),
   Student("나선주", 98, 92, 96, 92),
   Student("윤아린", 95, 98, 98, 98),
   Student("윤명월", 64, 88, 92, 92)
]

print("이름", "총점", "평균", sep="\t")

for student in students:
    print(student.to_string())

생성자 실행 시점이 학생리스트를 선언할 때인지 아니면 for문을 통해 students 리스트에 있는 클래스들이 student 변수에 들어가면서
student 변수가 인스턴스 변수가 될 때 생성자가 실행되는지.. 생성자 실행 시점 알려주시면 감사하겠습니다!

아 그리고 혹시 위의 for문 구조가

for student in students:
    print(student.to_string())

이렇게 되어 있는데 for문 구조상 students에 있는 값들을 차례대로 student에 넣게 되지 않습니까?
for문에서 students 값들이 student에 들어가는 게

student =  Student("박인성", 87, 98, 88, 95) # 이 코드와 동일한 구조를 가진 코드인가요?
...

개발자가_되어보자 427

M 2021년 1월 24일 11:19 오후

생성자는 리스트의 요소들이 만들어지는 시점에 호출됩니다. for문에서 꺼내 쓸때는 리스트에 담긴 객체만 사용하는거구요. - 박응용님, 2021년 1월 25일 12:27 오후 추천 , 대댓글
@박응용님 그렇군요 답변 주셔서 감사합니다. 그럼 리스트에 있는 값들을 for문에서 student 변수로 꺼내 쓰는데 여기서 student 변수는 Student 클래스의 인스턴스 변수가 되는 건가요? - 개발자가_되어보자님, 2021년 1월 25일 12:37 오후 추천 , 대댓글
목록으로