2EV 2023. 2. 28. 23:15

1. 상속

  • 클래스의 계층구조
    • 부모 -> 자식 -> 자식 ...
  • 상속이란?
    • 클래스의 상속 : 한 클래스가 다른 클래스로부터 데이터 속성(=변수)과 메소드(=함수)를 물려받는 것.
    • 상속하는 클래스
      • => 기반 클래스 (base 클래스)  or 상위 클래스 (super 클래스)
    • 상속 받는 클래스
      • 파생 클래스 (derived 클래스)  or  하위 클래스 (sub 클래스)
  • 파이썬 => 상속 하는 법
    • class A : 
      • def 함수1 (self, 변수, 변수) : 
        • return 결과
    • class B (A):
      • def 함수2 (self, 변수, 변수):
        • return 결과
    • class B 는 A를 상속받으므로 A의 함수1 도 사용 가능하며 B의 함수 2 도 사용 가능하다.
  • 파생 클래스, 하위 클래스, (자식)에서 -> 상속 -> 부모의 기능을 불러오려면?
    • super()  이용하면 부모에게 정의된 함수를 불러올 수 있다.
    • ex)
    • class 클래스1:
      • def 함수1(self, 변수, 변수):
        • 결과~~
    • class 클래스2(클래스1):
      • def 함수2(self, 변수, 변수):
        • super().함수1(변수, 변수)  # super() => 부모의 메소드를 불러와서 사용할 수 있다.
        • 행동
        • super().함수1(변수, 변수)
  • overriding 오버라이딩
    • 만약에, 부모의 메소드와 이름이 똑같은 메소드를 자식에게 정의하면?
      • class A :   # 
        • def method(self, 변수):
          • 결과
      • classB(A):
        • def method(self, 변수):
          • 다른 결과
      • class C(A,B):
        • pass # 패스는 아무것도 안하고 오류 안나게 빈칸 바워놓는 방법이다.
      • ==> 위와 같은 상황에서 C는 A,B중 어떤 함수를 상속받을까?
        • 먼저 입력한 A의 함수를 상속받는다.
        •  

2. 추상 클래스와 isinstance

  • 추상 클래스는 abc 모듈의 ABCMeta 클래스를 상속받아 만든다.
    • 이때 반드시 metaclass=메타클래스 이름   의 형태로 상속받는다.
  • 추상 클래스는 자신의 객체를 생성할 수 없다.
  • 추상 메소드라는 @abstractmethod 데코레이터를 사용하여 자신의 하위객체에게 특정 메소드의 생성을 강제할 수 있다.
    • 예시로 알아보자)
      • From abc import *  # abc모듈의 모든것을 import -> ABCMeta 클래스도 임포트 될 것이다.
      • Class Abstract(metaclass = ABCMeta):
        • @abstractmethod  #다음과 같은 데코레이터로 설정해주면 해당 메소드(함수)는 상속할 시 자식에서 재정의를 꼭 해줘야한다.
        • def method(self):
          • pass
      • class test(Abstract):
        • pass   # 이 경우  abstractmethod 인 method 를 정의하지 않아서 오류가 발생한다. -> 자식에서 메소드 생성 강제하는 것과 같다.
  • 추상 메소드는 이름만 존재하고 내용은 없다.
  • instance
    • instance (변수, 클래스 이름)은 주어진 변수의 값이 클래스의 인스턴스인지 여부를 반환해 주는 함수
    •  

 


* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

<사진 2장>

 

 

 

 

> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.