반응형
" 슬럼프는 자기 내면에 있는 꾀병이다. 마음속 어딘가에 하기 싫은 구석이 있는데 슬럼프를 핑계로
안 하는 거이다. 하지만 난 반대로 끊임없이 도전했다. "
- 대한민국의 前 스피드 스케이팅 선수 이상화 -
Python(파이썬) 10. 상속과 오버 라이딩, 클래스 변수와 객체 변수
목 차
1. 상속(Inheritance)
2. 오버 라이딩(Overriding)
3. 클래스 변수와 객체 변수
1. 상속(Inheritance)
1) 클래스 상속이란, 한 클래스(부모 클래스)의 속성과 메소드를 새로운 클래스(자식 클래스)가 물려받는 것
- class 클래스 이름(상속할 클래스 이름):
2) 자식 클래스에서 부모 클래스의 메소드를 사용(호출)하고 싶으면, super().메소드 이름() 형식으로 호출한다.
3) 부모에 없는 메소드를 추가 생성
- 더하기 기능만 있는 계산기(부모 클래스)에 기능을 곱하기, 나누기를 추가한 계산기(자식 클래스)로 만들어 본다.
4) 상속을 하는 이유
- 기존 클래스를 변경하지 않고 기능을 추가하거나 기존 기능을 변경하려고 할 때 사용한다.
2. 오버 라이딩(Overriding)
1) 부모 클래스의 메소드를 상속 받고 이를 자식 클래스에서 다시 정의하고자 할 때, 자식 클래스에서 같은 이름으로 메소드를 다시 정의하면 된다.
- 부모, 자식 클래스에 똑같은 메소드가 존재하는데 자식 클래스의 메소드가 우선시된다.
3. 클래스 변수와 객체 변수
1) 클래스 변수
- 클래스에 독립적으로 정의된 변수, 해당 클래스로 만든 모든 객체에 공통으로 사용하는 변수
- 객체는 서로 변수 및 메소드를 공유하지 않지만, 상속과 클래스 변수를 통해 서로 공유할 수 있게 된다.
- 하나의 클래스를 두 개의 객체로 만들었을 때 클래스 변수를 호출해보면 값이 동일하다.
- 클래스 변수는 인스턴스화 하지 않고 클래스 이름.변수명으로 호출 및 수정이 가능하다.
- 클래스 변수는 모든 객체가 공통으로 가져야 하거나 모든 객체에 적용되어야 하는 값인 경우 선언하게 된다.
2) 객체 변수
- 클래스로부터 생성된 각각의 객체에 속해 있는 변수
- 객체별로 생성된 객체 변수들은 서로 공유되지 않으며 변수들의 이름이 동일해도 영향을 미치지 않는다.
- 객체가 가진 변수는 self.변수명으로 생성자에 의해 초기화되거나 객체 메소드에서 메소드(self, ...)를 이용하여 생성
- 객체 변수와 클래스 변수 두 가지의 변수를 혼용하여 사용하게 되면 원하는 동작을 하지 않을 수 있으므로 주의해야 한다.
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python(파이썬) 9. 클래스(Class)와 객체(Object), 인스턴스(Instance) (0) | 2021.09.25 |
---|---|
Python(파이썬) 8. 함수(Function) (0) | 2021.09.23 |
Python(파이썬) 7. 1차 연습문제 (0) | 2021.09.23 |
Python(파이썬) 6. 딕셔너리(Dictionary) (0) | 2021.09.22 |
Python(파이썬) 5. 튜플(Tuple) (0) | 2021.09.22 |