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. 파이썬 클래스 구조와 매개변수

Leave a Comment