추상클래스(abstract class) 형식

CODEDRAGON Development/Python

반응형


 

 

 

 

추상클래스(abstract class) 형식

·       추상클래스는 {abc} 내장 패키지에서 기본이 되는 ABCMeta라는 Abstract Base Classe Meta클래스와 abstractmethod 인디케이터를 임포트해야 합니다.

·       추상클래스명에는 metaclass=ABCMeta 인자 옵션으로 주고 추상메소드에는  @abstractmethod 장식자(어노테이션) 붙여줍니다.

 

 

# Metaclass for defining Abstract Base Classes 임포트

from abc import ABCMeta

 

# A decorator indicating abstract methods 임포트

from abc import abstractmethod

 

 

# 추상 클래스 정의

class 추상클래스명(metaclass=ABCMeta):

   

    def __init__(self):

        pass

   

    @abstractmethod

    def 추상메소드1(self):

        pass

 

    @abstractmethod

    def 추상메소드2(self):

        pass

 

 

 

자식 클래스에서 추상클래스의 추상메소드를 재정의하지 않은 경우 자식클래스의 객체 생성시 아래와 같은 Error 발생합니다.

TypeError: Can't instantiate abstract class SmartCalculator with abstract methods sub