2 - 클래스의 상속

4505 단어 TILpythonTIL

파이썬 class

클래스의 상속

슈퍼클래스 라고 불리우는 부모클래스와 자식클래스(서브클래스) 의 관계를 알아보자.
자식클래스는 부모클래스의 모든 속성과 메서드를 사용할 수 있다. 모든 것을 상속받기 때문이다. 이와 같은 속성때문에 상속은 코드를 수정, 확장시킬 때 많이 사용한다.
즉, 클래스의 상속은 코드의 생산성 및 유지보수에 용이하고 이는 코드의 가독성과도 연결된다.

class Car():
    """Parent Class"""
    def __init__(self, tp, color):
        self.type = tp
        self.color = color

class BenzCar(Car): # Car class 를 상속받음
    """Sub Class"""
    def __init__(self, car_name, tp, color): # 부모한테 넘길 tp 와 color
        super().__init__(tp, color) # 부모에게 넘겨줌
        self.car_name = car_name
    def show_model(self):
        return "Your Car Name : %s" %self.car_name
        
model1 = BenzCar('520d', 'sedan', 'red')
print(model1.color) # red 부모클래스
print(model1.car_name) # 520d 자식클래스
  • 부모의 속성과 메서드도 접근이 가능함을 알 수 있다.

또한 자식클래스에 부모클래스에 있는 메서드와 동일한 이름으로 메서드를 작성할 수 있는데, 이를 오버라이딩(Method Overriding) 이라고 한다.
오버라이딩하면 부모메서드 대신 자식메서드가 실행이 되기 때문에 부모에게서 상속은 받았지만 변경하고 싶을 때 사용한다. 만약 오버라이딩 된 코딩에서 부모메서드에 접근하고 싶다면 super().method() 를 사용하면 된다.

상속의 뎁스가 궁금하거나 부모클래스가 궁금할 때, 상속 정보를 리스트 형태로 반환해주는 mro() 메서드를 사용할 수 있다. (참고로 모든 클래스는 object 클래스에게 상속을 받는다)

모듈과 패키지

모듈을 디렉토리 형태로 구조적으로 관리하는 것을 패키지 라고 한다. 쉽게 말해 모듈은 파일, 패키지는 이를 모아놓은 폴더라고 할 수 있다.

.. : 부모 디렉토리
. : 현재 디렉토리
  • 사용자는 from 패키지.모듈 import 사용할 클래스(or 함수) 1, 클래스2 와 같은 형태로 불러와 사용할 수 있다. 리소스를 낭비하지 말고 내가 필요한 것만 가져와서 사용하는 것이 권장된다.
  • 파이썬은 기본적으로 제공하는 모듈과 패키지, 내장함수들이 있는데 이를 파이썬의 표준 라이브러리 라고 부른다.

출처
점프 투 파이썬, https://wikidocs.net/28
패스트캠퍼스, 코딩+알고리즘 강의

좋은 웹페이지 즐겨찾기