for문에서 house.show_detail()을 넣어주는 이유를 모르겠습니다.
안녕하세요, 선생님
질문이 있습니다.
for house in houses: 까지는 리스트에 house들을 명시하는 것이라고 생각해서 이해가 되는데
house.show_detail()을 넣어주는 이유를 모르겠습니다.
class House:
답변 2
0
지금 houses라는 리스트에 들어있는 것은 ["강남", "아파트", ...., "2010년"]이라는 값이 아니라, House라는 클래스의 인스턴스입니다.
그래서 houses[0] (#houses라는 리스트의 첫 원소)는 house1(생성할 때 강남에 있는 아파트를 값으로 준 상태)가 됩니다.
그렇기 때문에 house1을 바로 print로 요청하면 값을 보여주는 것이 아니라 house1이라는 인스턴스를 호출하게 되어 예상하지 못한 결과가 나오게 됩니다.
*house.show_detail()대신 print(house)로 수정해서 실행해보시면 됩니다.
따라서 우리가 원하는 것처럼 화면에 매물 정보를 표시해주기 위해서는 이 인스턴스의 값을 읽어서 화면에 뿌려주는 작업을 거쳐야 되고,
값을 읽어서 화면에 뿌려주기 위한 방법(메소드)을 미리 House클래스에 show_detail()로 만들어뒀기 때문에 show_detail()이라는 함수를 호출해서 화면에 값을 나타내주는 겁니다.
* for house in houses: 는 리스트에 있는 house를 하나씩 꺼내보는 반복문이라고 생각하시면 됩니다. for 밑에 무엇을 할지 함수나 메서드를 호출하지 않으면 그냥 house를 꺼내보기만 하고 아무 동작도 하지 않는 거라고 생각하시면 돼요.
quiz 8 오류 문제
0
69
1
str() 작성 위치
0
51
1
아나콘다
0
60
1
윈도우 설치 도와주세요
0
74
1
std_weight함수에서weight만return가능한가요?
0
67
1
오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.
0
34
1
설치해서 시작하는데 문제가 있습니다.
0
69
1
함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?
0
103
1
2장 환경설정 문의
0
73
1
스타크래프트 프로젝트
0
74
1
python 파일명.py 입력시 Python 출력
0
133
1
로드맵 질문있습니다!
0
85
2
오류
0
74
1
질문 있습니다.
0
73
1
블로그에 학습한 내용을 정리해도 괜찮을까요?
0
171
1
#퀴즈 3의 5번 질문
0
71
1
print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다
0
80
1
가변인자의 위치가 중요한가요?
0
79
1
vscode옛날 버전 설치
0
220
1
글자색상이 선생님처럼 안나옵니다
0
186
1
슬프네
0
155
1
quiz 6번 관련 문의입니다.
0
129
1
퀴즈#3에 대해서 이렇게 작성해도 되나요?
0
193
1
피드백 부탁드립니다
0
93
1





