강의로 돌아가기
Junho Lee

왜 몸무게가 변하지 않나요?

다음과 같이 코드를 짰는데,

1) walk, eat 메소드를 사용했을 때 메소드 내부의 print문이 출력되지 않고
2) walk walk eat 한 후에 다시 print(person)을 했을 때 몸무게가 전혀 변하지 않았습니다.

채점에선 이상 없이 나오는데, 인스턴스의 변수값이 전혀 변하지 않은 것 아닌가요?
메소드 내 print 문은 왜 작동 안하는지도 궁금합니다

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Human():

    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    def __str__(self):
        return "{} (몸무게 {}kg)".format(self.name, self.weight)

    def eat(self):
        self.weight += 0.1
        print("{}가 먹어서 {}kg이 되었습니다.".format(self.name, self.weight))

    def walk(self):
        self.weight -= 0.1
        print("{}가 걸어서 {}kg이 되었습니다.".format(self.name, self.weight))

# 아래에서 person을 이름과 몸무게를 가지는 Human클래스의 인스턴스로 만들어보세요.
person = Human("김첨지", 500)
print(person)
person.walk
person.walk
person.eat

print(person)
1 개의 답변
Demi

함수를 호출할때에는 괄호!!! 를 꼭 붙여야합니다.

person.walk
person.walk
person.eat

person.walk()
person.walk()
person.eat()

처럼 바꿔보세요.

  • Junho Lee
    감사합니다! Junho Lee 2018.11.08 16:35
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.