파이썬 부모 클래스의 메소드 호출 시 None이 표시됩니다.
조회수 2206회
class Animal:
def __init__(self, name):
self.name = name
def get_name(self):
print("name:", self.name)
def speak(self):
pass
class Dog(Animal):
def speak(self):
print("bark")
dog = Dog("doggy")
print(dog.get_name())
위 코드를 출력하면 결과가 아래와 같습니다.
name: doggy
None
부모 클래스인 Animal의 get_name()
메소드 자체는 정상적으로 호출되는 것 같은데...
None은 어디서 나온 건가요?
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
self.name
의 출력은get_name
에서 수행되며 반환값이 명시되어 있지 않으므로 반환값은None
이 됩니다.
이 값을 또 출력하니None
이 출력되는 것이죠.-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
잘 생각을 해보세요.
get_name 메소드에서 print("name:", self.name) 출력을 합니다
print(dog.get_name()) 이 구문은 get_name 메소드의 결과를 출력합니다.
그런데...get_name 메소드는 결과가 None 입니다.
In [5]: print(None) None In [6]: a = dog.get_name() name: doggy In [7]: print(a) None
댓글 입력