클래스와 객체
- 객체: 데이터와 이를 처리하기 위한 메서드의 묶음
- 클래스: 객체를 만드는 형틀 혹은 포멧
클래스로부터 만들어지는 객체를 그 클래스의 인스턴스(instance)라 한다.
클래스 정의하기
class라는 키워드로 시작하고 __init__( )라는 생성자 메서드를 가진다.
객체 생성
클래스 이름으로 호출하면 객체가 생성된다.
프라이빗 멤버와 퍼블릭 멤버
클래스 안에서는 크게 두 가지 멤버가 존재한다. 하나는 클래스 안에서만 접근 가능한 프라이빗 멤버,
다른 하나는 클래스 안과 밖에서 모두 접근 가능한 퍼블릭 멤버
멤버 앞에 __키워드를 붙이면 프라이빗 멤버가 된다.
클래스 멤버
클래스의 메서드 밖에서 선언한 변수로 해당 클래스에서 관리하는 멤버이다.
클래스 이름으로 접근해야 하며 객체로 접근하면 객체만의 클래스 멤버에 접근하는 것이다.
<클래스로 접근> | <객체로 접근> |
클래스 메서드와 정적 메소드
- 클래스 메서드: @classmethod로 시작하며, 매개변수로 cls를 사용해야 한다.
- 정적 메소드: @staticmethod로 시작하며, 매개변수에 self 없이 정의한다.
상속(inheriteance)
다른 클래스의 속성과 메서드를 물려받는 것을 말한다.
사용 방법은 class 파생 클래스(기반 클래스):이다.
super()라는 함수로 부모 클래스가 객체 역할을 하는 프록시를 반환한다.
여기서 프록시는 임시 객체라고 생각하면 된다.
다중으로 클래스를 상속할 수 있다.