본문 바로가기
대학원 공부/programming language

Python : inheritance, 상속 : 부모 class 자식 class

by 월곡동로봇팔 2020. 4. 21.
class father():  # 부모 클래스
    def __init__(self, who):
        self.who = who
 
    def handsome(self):
        print("{}를 닮아 잘생겼다".format(self.who))
 
class sister(father):  # 자식클래스(부모클래스) 아빠매소드를 상속받겠다
    def __init__(self, who, where):
        super().__init__(who)
        self.where = where
 
    def choice(self):
        print("{} 말이야".format(self.where))
 
    def handsome(self):
       super().handsome()
       self.choice()
 
girl = sister("아빠", "얼굴")
girl.handsome()

출처: https://rednooby.tistory.com/56

 

[Python] 파이썬 super 기초 개념 및 예제

먼저 super를 사용하기전 상속, 오버라이딩 의 개념이 잡혀있어야 이해하기 쉽습니다. (상속, 오버라이딩 클릭시 페이지 이동) 개념 super() - 자식 클래스에서 부모클래스의 내용을 사용하고 싶을경우 사용 (무슨..

rednooby.tistory.com

내 code

드디어 상속해서 class를 구성해보았다. 진짜 너무 편하다는 것을 이제서야 알았다.

 

줄 code 작성

우선 줄 code 작성하면 장점이 있긴하다.

  1. 생각나는대로 주욱 쓰면 된다.

하지만 단점이 워낙 많다.

  1. debugging이 굉장히 힘들다. (줄 code니까 내가 어디서 틀렸는지 모른다.)
  2. 함수를 재사용 하지 못한다.
  3. 함수를 main code에 구성하더라도 함수들을 묶어서 보관하기 어렵기 때문에, 함수 및 클래스 관리가 어렵다.
  4. 등등 너무너무 많아....

 

class 구성

  1. 따라서 우리는 class를 구성하여 내가 자주 쓰고자 하는 함수 및 class를 재사용하고자 한다. 
  2. 또한 좀 더 함수들을 체계적으로 관리하기 위해 class를 구성 및 상속을 한다.

상속할 때 신경써야 할 점

  1. 생성자가 꼬이지 않게, 최대한 생성자가 없는 Basic 한 class을 만들어둔다.
  2. Basic Class에서는 재사용 가능한 함수들을 최대한 많이 넣는다.
  3. 용도별로 Basic Class를 나눠둔다.
  4. Main Class 에서는 생성자를 한 번에 적어주어 생성자가 꼬이지 않도록 한다.

 

댓글