43. 파이썬 – 더하기 기능 만들기

지난 시간에 이어 파이썬의 사칙연산 클래스를 만드는 과정을 통해 클래스에 대한 공부를 하고 있습니다.
지난 포스팅에서는 Four_Calculator 라는 클래스를 만들어 보는 과정까진 진행을 했는데
이번 포스팅에서는 Four_Calculator 클래스에 더하기 기능을 만들어 보는 과정을 공부해 보겠습니다.

파이썬 클래스

사칙연산 클래스 만들어보기 #4

더하기 기능 만들기

이전 Four_Calculator 클래스에서 testnumber 라는 메서드를 생성을 하고
first 와 second 라는 메서드의 매개변수의 설정까지 진행을 했습니다.

Python
>>> class Four_Calculator:
...     def testnumber(self, first, second):
...         self.first = first
...         self.second = second
...
>>>

이제 2개의 숫자를 더하는 기능을 Four_Calculator 클래스에 추가해 보도록 하겠습니다.
아래 코드가 가능하도록 더하기 기능을 가지고 있는 클래스를 만들어야 하겠습니다.

Python
>>> a = Four_Calculator()
>>> a.testnumber(4, 2)
>>> print(a.add())
6

다음처럼 코드를 만들어 보겠습니다.

Python
>>> class Four_Calculator:
...     def testnumber(self, first, second):
...         self.first = first
...         self.second = second
...     def add(self):
...         result = self.first + self.second
...         return result
...
>>>

add 라는 메서드를 새로 추가했습니다.
이제 클래스를 사용해 보도록 하겠습니다

Python
>>> a = Four_Calculator()
>>> a.testnumber(4, 2)

위 코드처럼 클래스 Four_Calculator 와 클래스에 속한 메서드 testnumber 를 호출했다면
이전 포스팅에서 보았듯이 a 객체의 first, second 객체변수에는 각각 숫자 4 와 2 가 저장 될 것입니다.
여기서 add 메서드를 호출을 해 보겠습니다

Python
>>> print(a.add())
6

위 처럼 a.add() 라고 호출하게 되면 add 메서드가 호출되면서 4 와 2 를 더한 값 6 이 출력이 됩니다.
아래 코드를 보면서 어떤 과정을 거쳐 6이 출력이 되는지 살펴 보겠습니다.

Python
def add(self):
    result = self.first + self.second
    return result

위에서 보시다시피 add 메서드의 매개변수는 self 이고 리턴값은 result 입니다.
아래는 리턴값인 result 의 계산 부분입니다.

Python
result = self.first + self.second

이전 코드에서 보신 것 처럼 a.add() 처럼 a 객체에 의해 add 메서드가 실행이 되면 add 메서드의 self 에는 a 라는 객체가 입력이 되게 됩니다.
이 내용은 아래와 같습니다.

Python
result = a.first + a.second

위의 내용은 a.add() 메서드가 호출되기 전에 a.testnumber(4, 2) 가 먼저 호출되면서 a.first = 4, a.second = 2 라고 먼저 설정되었기 때문입니다.
따라서 아래와 같은 내용이라고 보시면 됩니다.

Python
result = 4 + 2

결국 a.add() 를 호출하게 되면 4 와 2 를 더한 값 6 을 리턴을 하게 됩니다.

Python
>>> print(a.add())
6

여기까지 파이썬에서 클래스를 이용해 사칙연산을 위한 클래스를 만들고 더하기 기능까지 만드는 과정을 진행 해봤습니다.
다음 포스팅에 이어서 사칙연산의 나머지 기능인 곱하기, 빼기, 나누기 기능을 추가로 만들어 보도록 하겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
43. 파이썬 - 더하기 기능 만들기

41. 파이썬 – 클래스 구조와 매개변수

41. 파이썬 – 클래스 구조와 매개변수

지난 포스팅에서 파이썬의 클래스를 이용한 사칙연산을 만들기 위해 먼저 어떻게 동작을 해야할지 구상을 해봤습니다.

이번 포스팅에서는 지난 포스팅에 이어서 사칙연산 을 수행할 클래스를 만들어 보면서 클래스 구조와 매개변수에 대해 공부해 보겠습니다.

파이썬 클래스

클래스 구조와 매개변수

사칙연산 클래스 만들어보기 #2

클래스 구조 만들기

이제 앞에서 구상한 동작대로 실행을 하는 클래스를 만들어 보겠습니다.
먼저 a = Four_Calculator() 처럼 객체를 만들수 있게 클래스를 정의하는 것입니다.
우선은 아무 기능이 없어도 되기 때문에 간단하게 만들어 보겠습니다.

Python
>>> class Four_Calculator:
...     pass
...
>>>

우선은 대화형 인터프리터에서 pass 라는 문장만 포함한 Four_Calculator 클래스를 만들어 봤습니다.
현재 만들어진 Four_Calculator 클래스는 어떤 변수나 함수도 가지고 있지 않지만 원하는 객체 a 를 만들 수 있는 기능만은 가지고 있습니다.
여기서 사용된 pass 는 아무것도 수행하지 않는 문법입니다.
임시로 코드를 만들때 자주 사용되니 알고 넘어가야 겠습니다.

Python
>>> a = Four_Calculator()
>>> type(a)
<class '__main__.Four_Calculator'>

위 코드 처럼 a = Four_Calculator() 클래스를 이용해 a 객체를 만들어 준 뒤 type(a) 로 a 객체의 타입을 확인해 보았습니다.
a 라는 객체가 Four_Calculator 클래스의 인스턴스 임을 알 수 있습니다.
type 함수는 파이썬 자체의 내장 함수로서 객체의 타입을 출력해 주는 함수입니다.

객체에 숫자 지정 가능하게 만들기

여기서 생성된 객체 a 는 아직은 아무런 기능도 하지 못합니다.
여기에 더하기, 나누기, 곱하기, 빼기 등의 기능을 수행하는 객체로 만들어 줘야 합니다.
이런 여러가지 기능을 가지는 객체를 만들려면 우선 a 라는 객체에 사칙연산을 할 때 사용될 숫자 2개를 알려줘야 합니다.
아래처럼 연산을 수행할 때 필요한 숫자 4와 2를 객체에 지정할 수 있도록 만들어 보겠습니다.

Python
>>> a.testnumber(4, 2)

위 코드가 동작하게 하려면 아래 처럼 코드를 수정을 해야 합니다.

Python
>>> class Four_Calculator:
...    def testnumber(self, first, second):
...        self.first = first
...        self.second = second
...
>>>        
메서드(Method)란

앞서 만든 Four_Calculator 클래스에서 pass 문장을 삭제하고 testnumber 함수를 만들었습니다.
클래스 안에 구현된 함수를 다른 용어로는 메서드(Method) 라고도 합니다.
앞으로도 클래스 내부의 함수는 메서드(Method)라고 표현함을 알고 계시면 됩니다.

일반적으로 함수를 만들 때는 아래 처럼 코드를 작성합니다.

Python
def 함수명(매개변수):
    수행할 문장
    ...

메서드도 클래스에 포함되어 있다는 것만 빼면 일반 함수와 별반 다를게 없어보입니다.
testnumber 메서드를 살펴보겠습니다

Python
def testnumber(self, first, second): # 함수명(메서드의 매개변수):
    self.first = first               # 메서드의 수행할 문장
    self.second = second             # 메서드의 수행할 문장
testnumber 메서드의 매개변수

testnumber 메서드에서 매개변수로 self, first, second 3개의 값을 입력으로 받았습니다.
여기서 self 라는 매개변수가 등장하는데 self 는 특별한 의미를 가지고 있는 매개변수 입니다.
아래처럼 a 객체를 만들고 a 객체로 testnumber 메서드를 호출해 보겠습니다.

Python
>>> a = Four_Calculator()
>>> a.testnumber(4, 2)

위처럼 객체를 통해서 메서드를 호출하고자 할때는 a.testnumber(4, 2) 와 같이 도트(.) 연산자를 사용해야 합니다.
그런데 보면 self, first, second 3개의 매개변수가 설정이 되어있는데 실제로 보면 a.testnumber(4, 2) 처럼 2개의 값만 입력이 됩니다.
이유는 a.testnumber(4, 2) 처럼 호출을 하게 되면 testnumber 메서드의 첫번째 매개변수인 self 에는 testnumber 메서드를 호출한 객체 a 가 자동을 전달되는 형태이기 때문입니다

파이썬에서는 메서드의 첫번재 매개변수 이름을 관례적으로 self 라고 사용을 합니다.
객체를 호출 할 때 호출한 객체 자신을 전달하기 때문에 self 라는 이름을 사용하는 것이구요
따라서 self 대신 다른 이름을 사용해도 상관이 없습니다.
이는 파이썬만의 특정으로 자바 같은 언어에서는 첫 번째 매개변수로 self 가 필요가 없습니다.

사칙연산 클래스를 만들면서 파이썬의 클래스 구조와 매개변수에 공부해 봤습니다.
다음 포스팅에 이어서 사칙연산 클래스를 만들면서 파이썬의 클래스에 대해 더 알아보겠습니다

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
41. 파이썬 클래스 구조와 매개변수