프로그래밍/파이썬

[Python] 추상 클래스

고등어찌짐 2022. 4. 18. 22:07

 

 추상 클래스는 부모 클래스에 미구현 메소드 ( 추상 메소드 ) 가 있고, 이걸 자식 클래스에서 꼭 구현해야하는 클래스를 말한다. 자식 클래스들이 꼭 실행하거나 override 해야하는 함수가 있을 때 사용할 수 있다. 또, 자식 클래스들이 공유할 수 있는 기본 클래스들의 공통된 정의를 내려주기떄문에 템플릿처럼 사용될 수 있어, template method pattern 과 함께 자주 사용된다. 코드 구현시에는 추상화를 지원해주는 abc (abstract base class) 모듈을 임포트해야 사용할 수 있다. 

 

from abc import *
 
class CatBase(metaclass=ABCMeta):
    @abstractmethod
    def eat(self):
        pass
 
    @abstractmethod
    def sleep(self):
        pass
 
class Cat(CatBase):
    def eat(self):
        print('먹기')
 
    def sleep(self):
        print('잠자기')

 

 

#참조

When and Why to use abstract classes/methods? [closed]
https://stackoverflow.com/questions/3344816/when-and-why-to-use-abstract-classes-methods36.6 추상 클래스 사용하기
https://dojang.io/mod/page/view.php?id=2389