2. 사칙연산 클래스 만들기
페이지 정보
작성자 관리자 댓글 0건 조회 4,146회 작성일 20-07-17 19:03본문
클래스를 직접 만들며 배워 보자.
여기에서는 사칙연산을 쉽게 해주는 클래스를 만들어 볼 것이다.
사칙연산은 더하기, 빼기, 나누기, 곱하기를 말한다.
클래스 구상하기
클래스는 무작정 만드는 것보다 클래스로 만든 객체를 중심으로 어떤 식으로 동작하게 할것인지 미리 구상을 한 후에 생각한 것들을 하나씩 해결하면서 완성해 나가는 것이 좋다.
사칙연산을 가능하게 하는 FourCal 클래스가 다음처럼 동작한다고 가정해 보자.
먼저 a = FourCal()를 입력해서 a라는 객체를 만든다.
>>> a = FourCal()
그런 다음 a.setdata(4, 2)처럼 입력해서 숫자 4와 2를 a에 지정해 주고
>>> a.setdata(4, 2)
a.add()를 수행하면 두 수를 합한 결과(4 + 2)를 돌려주고
>>> print(a.add())
6
a.mul()을 수행하면 두 수를 곱한 결과(4 * 2)를 돌려주고
>>> print(a.mul())
8
a.sub()를 수행하면 두 수를 뺀 결과(4 - 2)를 돌려주고
>>> print(a.sub())
2
a.div()를 수행하면 두 수를 나눈 결과(4 / 2)를 돌려준다.
>>> print(a.div())
2
이렇게 동작하는 FourCal 클래스를 만드는 것이 바로 우리의 목표이다.
클래스 구조 만들기
자, 그러면 지금부터 앞에서 구상한 것처럼 동작하는 클래스를 만들어 보자.
제일 먼저 할 일은 a = FourCal()처럼 객체를 만들 수 있게 하는 것이다.
일단은 아무 기능이 없어도 되기 때문에 매우 간단하게 만들 수 있다.
다음을 따라 해 보자.
>>> class FourCal:
... pass
...
>>>
우선 대화형 인터프리터에서 pass란 문장만을 포함한 FourCal 클래스를 만든다.
현재 상태에서 FourCal 클래스는 아무 변수나 함수도 포함하지 않지만 우리가 원하는 객체 a를 만들 수 있는 기능은 가지고 있다.
pass는 아무것도 수행하지 않는 문법으로 임시로 코드를 작성할 때 주로 사용한다.
>>> a = FourCal()
>>> type(a)
<class '__main__.FourCal'>
위와 같이 a = FourCal()로 a 객체를 먼저 만들고 그다음에 type(a)로 a 객체가 어떤 타입인지 알아보았다.
역시 객체 a가 FourCal 클래스의 객체임을 알 수 있다.
type 함수는 파이썬이 자체로 가지고 있는 내장 함수로 객체 타입을 출력한다.
객체에 숫자 지정할 수 있게 만들기
하지만 생성된 객체 a는 아직 아무런 기능도 하지 못한다.
이제 더하기, 나누기, 곱하기, 빼기등의 기능을 하는 객체를 만들어야 한다.
그런데 이러한 기능을 갖춘 객체를 만들려면 우선 a 객체에 사칙연산을 할 때 사용할 2개의 숫자를 먼저 알려주어야 한다.
다음과 같이 연산을 수행할 대상(4, 2)을 객체에 지정할 수 있게 만들어 보자.
>>> a.setdata(4, 2)
위 문장을 수행하려면 다음과 같이 소스 코드를 작성해야 한다.
>>> class FourCal:
... def setdata(self, first, second):
... self.first = first
... self.second = second
...
>>>
앞에서 만든 FourCal 클래스에서 pass 문장을 삭제하고 그 대신 setdata 함수를 만들었다.
클래스 안에 구현된 함수는 다른 말로 메서드(Method)라고 부른다.
메서드도 클래스에 포함되어 있다는 점만 제외하면 일반 함수와 다를 것이 없다.
a.add()
라고 호출하면 add 메서드가 호출되어 값 6이 출력될 것이다. 댓글목록
등록된 댓글이 없습니다.