본문 바로가기

Python

주식 알고리즘 만들기 - 5.4) 클래스 (상속)

반응형

2022.10.11 - [Python] - 주식 알고리즘 만들기 - 5.3) 클래스 (네임스페이스, 변수)

 

https://wikidocs.net/2585

 

 

주식 알고리즘 만들기 - 5.3) 클래스 (네임스페이스, 변수)

" data-ke-type="html"> <>HTML 삽입 미리보기할 수 없는 소스 2022.10.11 - [Python] - 주식 알고리즘 만들기 - 5.2) 클래스 (__init__, self) 주식 알고리즘 만들기 - 5.2) 클래스 (__init__, self) 2022.10.10..

jiain.tistory.com

 

안녕하세요. 제이아이엔입니다.

이번 포스트는 대망의 클래스 마지막 포스트입니다.

낯선용어와 개념을 이해하는데 어려움을 겪고 있을지 모르지만

그만큼 중요하고 배울 가치가 있는 파트라고 생각합니다.

오늘도 가우스 명언처럼 즐거움에게 안기러 가볼까요~

 

 

알고 있는 것이 아닌 배워나가는 것이,

소유하고 있는 것이 아닌 흭득하는 것이,

그곳에 있는 것이 아닌 그곳에 도달하는 것이,

가장 큰 즐거움을 안겨준다.

 

ㅡ 카를 프리드리히 가우스

[독일의 수학자 : 1777~1855]

 

#클래스 상속

 

상속이란  사망한 후에 다른 사람에게 재산에 관한 권리와 의무의 일체를 이어 주거나, 다른 사람이 사망한 사람으로부터 그 권리와 의무의 일체를 이어받는 일을 합니다. 프로그래밍에서 갑자기 상속 이야기를 한 이유는 객체지향 프로그래밍을 지원하는 프로그래밍 언어는 클래스에서 상속 기능을 지원하기 때문입니다. 자식이 부모님으로부터 재산 등을 상속받는 것처럼 다른 클래스에 이미 구현된 메서드나 속성을 상속한 클래스에서는 그러한 메서드나 속성을 그대로 사용할 수 있게됩니다.

 

다른 점이 있다면, 클래스 상속은 사람의 유전을 물려주는 것과 더 가까운 개념이라고 할 수 있습니다.

 

공부를 잘하는 집안의 부모 클래스가 있다고 생각해봅시다. 이것을 파이썬으로 표현하면 다음과 같습니다.

 

class parent:
  def smart(self) :
    print("smart")

father = parent()
father.smart()

 

Parent 클래스를 정의했으니 클래스의 father인스턴스를 생성해 보겠습니다. 그리고 father 똑똑한지 메서드를 호출해 확인해 보겠습니다.

 

father = parent()
father.smart()

smart

father은 smart 메서드를 잘 이어 받았은 것을 알 수 있습니다.  자 이제 클래스 상속을 해보겠습니다. 

클래스상속은 class 클래스명 (상속 클래스) : 라는 방법으로 상속 시킬 수 있습니다. 

한번 해보겠습니다.

 

class inherited_children(parent):
  pass

 

child1= inherited_children()
child1.smart()

smart

 

inherited_children이라는 클래스를 형성했고, 우리는 parent 라는 클래스를 상속시켰습니다. 
child1 인스턴스를 생성시켰을때, parent 클래스의 smart 메소드 특성을 그대로 상속받은 것을 확인 할 수 있습니다.
다음은 상속받지 않은 class 기본생성했을때 나타나는 오류입니다. 

 

이번엔 perfect_child 라는 클래스를 만들고 다른 메서드 sing(), soccer(), running()를 추가하고 child3 인스턴스를 생성 해보겠습니다.

 

class perfec_child(parent):
 def sing(self):
  print("very well sing")
 def soccer(self):
  print("very well play the soccer")
 def running(self):
  print("very well run")

 

추가한 메소드 이외에 smart 메소드를 그대로 이어받은 것을 확인할 수 있습니다.  

클래스 상속으로 우리는 더욱 더 아름답고 풍부하고 판타지한 프로그래밍을 할 수 있게 됐습니다.

 

다음 시간엔 연습문제를 풀어보도록하겠습니다.

 

728x90