반응형
추상 클래스를 상속받은 파생 클래스 내부에서 추상 클래스에서 선언한 추상 메소드를 구현하지 않았을 때 발생하는 오류이다.
파생 클래스 내부에 추상 메소드를 구현해주면 해결할 수 있다.
예시
오류 코드
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def eat(self):
pass
class Dog(Animal):
def __init__(self, name, age):
self.name = name
self.age = age
doge = Dog("doge", 1)
print(doge.name)
print(doge.age)
# 결과: TypeError: Can't instantiate abstract class Dog with abstract method eat
`Dog` 클래스 내부에 eat 메소드를 선언
정상 코드
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def eat(self):
pass
class Dog(Animal):
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self, food):
print(f"{self.name} eats {food}")
doge = Dog("doge", 1)
print(doge.name)
print(doge.age)
doge.eat("cake")
반응형
'Python > 오류 및 해결 방법' 카테고리의 다른 글
Python pip install playsound error, playsound 설치 오류 (1) | 2023.07.23 |
---|---|
TypeError: 'str' object cannot be interpreted as an integer (0) | 2023.07.06 |
댓글