지난 시간에 이어 계속해서 파이썬 클래스를 이용해서 사칙연산 계산기를 만들어 보겠습니다.
파이썬 클래스
사칙연산 클래스 만들어보기 #3
메서드 수행문
메서드의 또 다른 호출방법
아래처럼 클래스를 통해 메서드를 호출하는 것도 가능은 합니다.
하지만 많이 사용되지는 않는다는 거는 참고하시기 바랍니다.
>>> a = Four_calculator()
>>> Four_calculator.testnumber(a, 4, 2)
위처럼 클래스이름.메서드 형태로 호출을 하게 되면 객체 a 를 첫번재 매개변수 self 에 꼭 전달해 주어야만 합니다.
하지만 아래처럼 객체.메서드 형태로 호출을 하게 되면 self 를 반드시 생략해서 호출을 해주어야만 합니다.
>>> a.Four_calculator()
>>> a.testnumber(4, 2)
testnumber 메서드 수행문
testnumber 메서드의 수행문에 대해 공부해 보겠습니다.
def testnumber(self, first, second): # 함수명(메서드의 매개변수):
self.first = first # 메서드의 수행할 문장
self.second = second # 메서드의 수행할 문장
testnumber 메서드를 생성을 하고 a.testnumber(4, 2) 로 호출을 하게 되면 testnumber 메서드의 매개변수 first, second 에는 각각 숫자 4와 2 가 대입되어 testnumber 메서드는 다음처럼 수행문을 해석하게 됩니다.
self.first = 4
self.second = 2
이전 포스팅에서 설명했던 self 는 실제로 전달된 a 객체를 의미하므로 다음처럼 해석하게 됩니다.
a.first = 4
a.second = 2
객체변수
a.first = 4 문장이 수행이 되면 a 객체에 객체변수 first 가 생성이 되고 숫자 4 가 대입이 됩니다.
마찬가지로 a.second = 2 문장이 수행이 되면 a 객체에 객체변수 second 가 생성이 되고 숫자 2 가 대입이 됩니다.
여기서 객체변수는 객체만의 변수를 의미합니다.
>>> a = Four_Calculator()
>>> a.testnumber(4, 2)
>>> print(a.first)
4
>>> print(a.second)
2
위 코드를 보면 a 객체에 first 와 second 가 생성이 된 것을 알 수 있습니다.
이번엔 아래처럼 a 와 b 객체를 만들어 보겠습니다.
>>> a = Four_Calculator()
>>> b = Four_Calculator()
그리고 이렇게 만들어진 a 와 b 객체의 객체변수 first 를 아래와 같이 생성을 해보겠습니다.
>>> a.testnumber(4, 2)
>>> print(a.first)
4
a 에 이어 b 객첵의 객체변수 first 도 아래와 같이 생성해 보겠습니다.
>>> b.testnumber(5, 7)
>>> print(b.first)
5
여기서 중요한 점!
위처럼 b 객체의 객체변수 first 에 는 5 라는 숫자가 저장이 된걸 알 수 있습니다.
그럼 a 객체의 first는 어떻게 되어 있을까요?
원래 있던값 4를 유지하고 있을까요?
>>> print(a.first)
4
위 결과를 보시면 아시다시피 a 객체의 first 값은 b 객체의 first 값에 영향을 받지 않습니다.
원래 있던 4 라는 숫자를 가지고 있음을 확인 할 수 있습니다.
이점이 클래스로 만든 객체의 객체변수는 다른 객체의 객체변수에 상관없이 독립적이게 값을 유지 한다는 점입니다.
클래스에서는 이점을 중요하게 여기고 넘어가야 합니다.
이제까지 진행한 내용을 바탕으로 Four_Calculator 클래스를 완성해 보겠습니다.
물론 사칙연산의 모든 기능이 다 포함된 완성본은 아닙니다.
>>> class Four_Calculator:
... def testnumber(self, first, second):
... self.first = first
... self.second = second
...
>>>
이번 포스팅에서 공부한 내용은 위의 코드를 설명하기 위한 것들입니다.
이해가 안간다면 다시 한 번 더 훑어보고 이해를 하고 넘어가야 합니다.
다음 포스팅에서 이어서 파이썬 클래스를 이용해 사칙연산 계산기 만들기에 대해 공부해 보겠습니다.
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
