inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

퀴즈 #8

for문에서 house.show_detail()을 넣어주는 이유를 모르겠습니다.

해결된 질문

246

레몬 녹차 (탈퇴)

작성한 질문수 0

0

안녕하세요, 선생님

질문이 있습니다.

 for house in houses: 까지는 리스트에 house들을 명시하는 것이라고 생각해서 이해가 되는데

house.show_detail()을 넣어주는 이유를 모르겠습니다.

 class House:

  def __init__(selflocationhouse_typedeal_typepricecompletion_year):
    self.location=location
    self.house_type=house_type
    self.deal_type=deal_type
    self.price=price
    self.completion_year=completion_year

    def show_detail(self):
      print(self.location, self.house_type, self.deal_type, self.price, self_completion)

houses=[]      
house1=House("강남""아파트""매매""10억""2010년")      
house2=House("마포""오피스텔""전세""5억""2007년")  
house3=House("송파""빌라""월세""500/50""2000년"

houses.append(house1)
houses.append(house3) 
houses.append(house3)

print("총 {0} 대의 매울이 있습니다.".format(len(houses))) 
for house in houses:
  house.show_detail() #[?] 왜 필요한지 모르겠다

python

답변 2

0

hysong.dev

지금 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를 꺼내보기만 하고 아무 동작도 하지 않는 거라고 생각하시면 돼요.

0

레몬 녹차 (탈퇴)

game_start() 같이 함수 부르는 것 같음...

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