Python/Programming basic

상속과 예외처리_02.추상클래스와 isinstance

sonzwon 2022. 6. 30. 13:27

# 추상클래스

- abc모듈의 ABCMeta 클래스를 상속 받아 만든다. 이때, 반드시 metaclass=메타클래스 이름의 형태로 상속 받음

- 자신의 객체를 생성할 수 없음

- @abstractmethod 데코레이터를 사용하여 자신의 하위객체에게 특정 메소드 생성을 강제함

- 이름만 존재하고 내용은 없음

from abc import *
class abstract(metaclass=ABCMeta):
    @abstractmethod
    def method(self):
        pass
class test(abstract):    # 추상메소드를 상속받은 클래스
    def method(self):    # 하위객체는 상속받은 추상클래스의 메소드를 강제로 만들어야 함. 함수 정의하지 않으면 오류남
        pass

- 추상메소드를 상속 받은 클래스에서 함수를 생성하지 않고    class test(abstract):     만 하면 오류남                                                                                                                                           pass

- 추상클래스와 추상메소드의 의미?? 하위클래스들에게 강제로 메소드를 만들게 함을 조건으로 주는 건데 상속시에 메소드를 빼먹는 것을 방지하기 위함이라고 함,,,

 

 

# isinstance

- 주어진 변수값이 클래스의 인스턴스인지 여부를 확인해주는 함수

isinstance(3, int)    #int라는 클래스의 인스턴스인가?
#True