위키백과에서 찾은 "클래스"의 정의는 아래와 같다.
- 클래스(class)는 객체 지향 프로그래밍(OOP)에서 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀이다. 객체를 정의하기 위한 상태(멤버변수)와 메서드(함수)로 구성된다.
- 클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대한 수퍼클래스가 된다.
- 서브클래스는 자신만의 메소드와 변수를 정의할 수도 있다.
파이썬에선 위키백과에 설명되어 있는 상태(멤버변수)와 메서드(함수)를 크게는 Attribute, 작게는 Data Attribute 및 Method라 정의하지만, 이해의 편의 상 객체 변수 또는 클래수 변수, 메서드로 부르기로 한다.
클래스를 정의하고 그 클래스를 기준하는 객체를 생성, 사용하는 간단한 예는 아래와 같다.
- 클래스는 "class" 키워드로 정의한다.
- 파이썬 클래스 정의의 특징으로 메서드의 첫번째 매개변수는 "self"로 시작한다.
- 정의한 클래스 "PeopleSay"에 대한 객체(=인스턴스)를 생성하는 방법은 5~6줄에 있다.
- 클래스에 대한 객체가 생성되면, 그 객체가 가지고 있는 객체변수나 메서드를 '.'을 이용해 접근 또는 호출할 수 있다.
클래스 정의 시 생성자(Constructor)인 '__ini__' 메서드를 작성하면, 클래스 객체 생성 시 최초, 한번만 실행된다.
- 클래스의 생성자를 작성하는 방법은 4줄에 있다.
- PeopleSay 클래스의 생성자는 "name"이라는 매개변수가 있고, 이를 객체변수에 저장하기 위해 self.name을 사용했다.
- 이제 PeopleSay 클래스는 하나의 매개변수를 가지는 생성자가 있기에 PeopleSay 클래스 객체를 생성할 때 이름도 같이 작성해 줘야 한다. 이는 11, 14줄에 있다.
- 클래스의 "how_many"는 클래스 레벨의 변수이기 때문에 클래스 이름 또는 생성한 객체를 통해 접근이 가능하다. 이는 9, 17, 18줄에 있다.
- 객체가 생성될 때 같이 생성되는 "name"은 생성되는 객체에만 속하는 변수이기 때문에 클래스 이름으로 접근하면 오류가 난다. 이는 19줄에 있다.
'코딩 > 파이썬과 라즈베리파이' 카테고리의 다른 글
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 013. turtle 모듈로 그림 그리기 (0) | 2021.05.16 |
---|---|
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 012. import로 모듈 불러오기 (0) | 2021.05.16 |
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 010. 함수 (0) | 2021.05.15 |
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 009. for 문 (0) | 2021.05.15 |
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 008. while 문 (0) | 2021.05.15 |