320x100
class의 상속에 관해서는
일단 가장 메인이 되는 class를 만드는건 전혀 문제가 없다.
하지만 상속class부터가 문제다.
나는 원리를 온전히 이해하지 못하고 있다.
상속은 더욱 더 공부가 필요하다.
# 문제
코딩 연습 확인사항: 상속
임무: 이름(name)과 종족(species)을 가진 Animal 클래스를 만드세요.
그 클래스에 greet()라는 함수를 만들어
"Hi! My name is {name} and I am a {species}"라는 구문을 출력하세요.
그런 다음, 이 클래스를 사용하여
Cat과 Dog 클래스를 만드세요.
각 클래스는 이름(name)을 인자로 받으며,
이 동물이 일반적으로 내는 소리를 출력하는 sound()라는 메서드를 구현하세요.("ruff"와 같은 문자열로).
힌트: 각 클래스 안에서 부모 클래스를 초기화하는 것을 잊지 마세요.
중요 참고 사항: 위의 임무를 주의 깊게 읽어주세요! 자동화된 코딩 연습 평가 시스템은 정확하게 일치하는 것이 요구되기 때문에 정확하게 동일해야 합니다!
이에 대한 해답은 다음 강의에 있습니다.
# 내 코드
그냥 틀림이다.
뼈대는 있되 어쨌든 명백히 틀린거다.
class Animal():
def __init__(self, name, species):
self.name = name
self.species = species
def greet(self):
print('Hi! My name is {name} and I am a {species}')
class Cat(Animal):
def sound(self):
print('mew')
class Dog(Animal):
def sound(self):
print('bow')
# 답안 코드
class Animal:
def __init__(self, name, species):
self.name = name
self.species = species
def greet(self):
print(f"Hi! My name is {self.name} and I am a {self.species}")
class Dog(Animal):
def __init__(self, name):
Animal.__init__(self, name, "Dog")
def sound(self):
print("Wuff")
class Cat(Animal):
def __init__(self, name):
Animal.__init__(self, name, "Cat")
def sound(self):
print("Meow")
그래도 상속받는 인자로써 작용하는 것을 제외하곤 다 맞았다.
인자로써 상속받는것만 더욱 주의를 기울이자.
300x250
'개발일지 > Python' 카테고리의 다른 글
*매우중요 Python 문제풀이 13 - class 상속 (0) | 2022.09.28 |
---|---|
*매우중요 Python class4 - 상속 __str__, __len__ (0) | 2022.09.28 |
Python class3 - 상속 (0) | 2022.09.28 |
Python 문제11 - class 메서드 정의 후 호출 (0) | 2022.09.28 |
Python class2 (0) | 2022.09.28 |