파이썬 생성자 실행시점 질문입니다.
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 오후
추천
,
대댓글