Python 입문 | 클래스 사용 | 함수와 클래스

함수는 하나의 처리를 하나로 통합한 것이지만, 이런 함수가 많이 늘어나면, 점차적으로 어느 것이 무슨 역할를 하는지 의미를 알기 힘들어 진다. 예를 들어, 수백개의 함수가 나열되어 있으면, 그것을 전부 이해해 나가는 것은 힘들 것이다.

그래서 “비슷한 역할을 하는 것을 한곳에 모으자"라고 누구든지 생각된다.   예를 들어, 어떤 데이터 처리를 만드는 것을 생각해 보자. 데이터를 관리하는 함수, 데이터를 추가하는 함수, 데이터를 삭제하는 함수, 데이터를 출력하는 함수 …… 따위가 쭉 늘어서 있는 것은 그다지 사용하기가 쉽지 않다.    그래서 “데이터를 처리하기 위해 필요한 것"을 모두 한 묶음으로 두자"라고 생각하게 된다. 큰 “데이터 관계 묶음’이라는 것을 만들고, 그 안에 “데이터를 보관할 변수”, “데이터를 파일에 읽고 쓰는 함수”, “데이터를 추가하거나 삭제하는 함수”, “데이터를 출력하는 함수” ……와 같이, 그 데이터 처리에 필요한 변수와 함수를 모두 하나로 모으자는 것이다.

그렇게 되면 데이터의 처리에 관해서는 우선 “이 묶음에 안에 반드시 있다"라는 것이 되기 때문에, 곳곳의 함수를 찾지 않아도 된다.   이것이 “클래스(class)“의 개념이다. 클래스라는 것은 어떤 목적을 위해 필요한 ‘값’과 ‘처리’를 모두 한 묶음으로 한 것이다.   이 클래스는 아래와 같은 같은 형태로 만든다. “class 클래스 이름:“라는 것으로 시작하여 그 아래에 클래스가 제공하는 변수와 함수를 들여 쓰기하여 작성한다.    

클래스의 정의

class 클래스 이름:
  변수1
  변수2
  ......필요한 만큼 변수를 제공......

  def 메소드1(인수):
     ......메소드의 처리......
   
  def 메소드2(인수):
     ......메소드의 처리......
   
  ......필요한만큼 메소드를 제공......

클래스에 필요한 값을 저장하는 변수를 “멤버 변수”, 클래스에 제공하는 함수를 “메소드"라고 한다.

이러한 작성법은 기본적으로 일반 변수와 함수의 작성법 동일하다. 단지 “class OO:“라는 정의에 쓰면 멤버 변수와 메소드로 처리 할 수 있게 된다는 것 뿐이다. 특별한 작성법 등은 없다.