본문 바로가기
Programming Language/Python

[파이썬 ] DAY6 상속

by 9루트 2022. 1. 21.

관계 3가지

집합관계

사용관계

상속관계

 

1. 상속

* 상속을 쓰는 이유부모 클래스를 재사용해서 자식 클래스를 빨리 개발 가능하다. 부모의 멤버를 수정하면 상속된 자식들도 자동적으로 바뀌므로 유지보수가 변하다.객체 다형성 구현이 가능해진다.

 

 

현실 세계처럼 자식은 부모가 가지고 있는 멤버를 물려받는다.

현실과 달리 자식은 물려받은 멤버를 선택할 수 있다.

 

상속받을 때 인스턴스 영역은 인스턴스가 없으면 상속받지 못한다.

new(cls)

는 다루지 않을 거임. 클래스 초기화

 

b가 선언되지 않았기 때문에 출력되지 않는다.

 

 

자식 객체를 만들면 자동으로 부모가 생성된다.(new(cls))
자식의 객체를 만들면 부모의 생성자(init(self))는 동작하지 않는다.

인스턴스 메소드가 실행됨!!: f()으로 함수가 존재하게 되고 변수 b 가 생기게 된다.

 

 

2/8 까지 파이썬할 것임

Numpy 다룰 것임(기능 + 쓰임)

SLAM ROS 할 때 수학적 접근 안 할 것임.

그래도 선형대수학 공부하자 (트랜스포즈, 역행렬, 편미분, 체인룰??)

 

굳이 통신 할 필요가 있나?

OPEN CV 라디ㅓ  센서 문제 인식 카메라로 디텍팅, 움직인지 OFF11?? ? 

책을 별도로 구매해야 할 수 있음

인공지능: 데이터 가공이 중요함( y = wx +b )

 

 

 

 

생성자 - new

초기화 - init


2. super()

부모 생성자를 불러오기 위해 super를 쓴다.

super :   자기의 부모를 지칭한다.

자식은 sub, 부모는 super

 

부모 없는 자식은 없으므로,

자식 객체를 생성할 때 부모 객체부터 생성한 후에 자식 객체를 생성해야 한다.

 super 안의 인스턴스 메소드 호출
왠만하면 자식생성자의 맨 위에 super.인스턴스메소드 를 호출하자

 

부모의 인스턴스 생성자에 입력 매개변수가 있을 때

 

퀴즈: A → B → C 상속되는 세 개의 클래스를 만들고 C의 인스턴스로 각 생성자 동작이 출력되도록 하시오.

 


3. 다중 상속

 

파이썬만 다중 상속이 가능하다. 모호성이 발생할 수 있으므로 대신 우선순위 개념이 도입되어 있다.

이름과 가까운 부모 클래스를 우선 순위로 정한다.

A2가 A1 앞에 있으므로 A2의 x=2가 출력된다.