본문 바로가기
개발일지/Python

*매우매우중요 Python 문제풀이12 - class 상속

by 개발에정착하고싶다 2022. 9. 28.
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