본문 바로가기

computer/python

클래스, class - 1

클래스는 객체지향 프로그래밍 방법(Object Oriented Programming)에 주된 요소이다.

클래스를 설명할 때 붕어빵에 자주 비유한다.

붕어빵을 만들려면 붕어빵 틀(class)이 있고 틀을 통해 김이 모락모락 나는 붕어빵(instance)을 여러개 만들 수 있다.
붕어빵 틀을 발전시켜 피자 붕어빵, 크림 붕어빵을 만들 수도 있다.

파이썬으로 붕어빵 클래스를 선언해보자. (붕어빵을 fishcake 이라하자..)

붕어빵 클래스

위 예에서는 FishCake 클래스를 선언하였다.
FishCake 클래스의 어트리뷰트(attribute)로는 변수 time, 메소드 __init__, bake가 있다.

클래스 선언은 간단하다.
class 키워드 뒤에 클래스 명을 넣기만 하면 된다. 파이썬 스타일 가이드에 따라서 클래스 이름의 첫 글자를 대문자로 하였다.
클래스의 변수로 time을 메소드(함수)로 __init__, bake를 선언하여 상태와 행위를 표현하였다.

__init__ 메소드는 생성자(constructor)이다.
인스턴스가 생성될 때 자동으로 선언되는 메소드이다.

위 예에서는 redbean 10과 flour 100을 인자로 받아 인스턴스를 생성하였다.
준비 된 재료를 이용해 붕어빵을 굽기 위해 붕어빵 a 뒤에 .bake()를 통해 bake 메소드를 실행하였다.

붕어빵 두개 생성

위 그림처럼 FishCake 클래스를 이용해 인스턴스 a, b를 만들 수 있다.
(붕어빵 틀을 이용해 붕어빵 a, 붕어빵 b를 구울 수 있다.)

붕어빵 틀의 조리 시간을 조절해보자.

붕어빵 조리시간 조절

위 코드를 읽어보면 처음에는 클래스의 어트리뷰트인 time을 조절하였다.
붕어빵 a, b을 세팅하고 a, b의 조리 시간을 확인한다. 다시 b의 조리시간을 10으로 원상복구하였다.
그리고 붕어빵 a, b를 구운 뒤에 설정된 a, b의 조리 시간을 확인한다.

결과는 다음과 같다.

결과

클래스 변수 time을 조절하면 그 뒤에 만든 인스턴스 a, b의 클래스 변수time이 1로 설정된 것을 확인할 수 있다.
생성된 인스턴스 a, b 중 b의 조리시간을 다시 10으로 설정하고 두 붕어빵을 구운 결과 110, 1250을 확인할 수 있다.

이처럼 클래스 변수를 통해 인스턴스 전체에 영향을 미칠수도, 인스턴스를 통한 변수접근으로 인스턴스에 영향을 미칠 수도 있다.

'computer > python' 카테고리의 다른 글

초 단위의 디지털 시계를 어떻게 구현할 것인가?  (0) 2022.10.07
데이터 타입, type  (0) 2022.08.24
함수, function  (0) 2022.08.05
print 함수  (0) 2022.08.03
어느 환경에서 파이썬을 시작해야 할까?  (0) 2022.07.25