강의로 돌아가기
-

print 관련 질문

여러가지를 시도해보던 중에 궁금증이 생겨 질문드립니다.

그냥
person.walk()
person.eat()
person.walk()
로 출력하면 결과가 제대로 나오는데

코드와 같이
print(person.walk())
와 같은 방법으로 출력을 하면
결과가

인간가 걸어서 60.4kg이 되었습니다.
None

이 출력됩니다.

None이 출력되는 이유가 무엇인가요?

작성중인 코드―human_class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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('인간', 60.5)
print(person.walk())
print(person.eat())
print(person.walk())
1 개의 답변
정두식_

print(person.walk())와 같이 하면 우선 person.walk()가 수행되면서 출력이 발생합니다. 그런데 person.walk의 return값은 none이네요.
그래서 none이 그 다음으로 출력이 발생합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.