사실 클래스는 파이썬에서 정말 많은 역할을 담당하고 있기도 하지만, 무엇보다도 증권사에서 배포하는 Open API를 이용하기 위해서는 클래스를 반드시 알아야 한다. 하지만 그만큼 양도 방대하기 때문에 사실 작성을 시작하는 것이 두려웠다.
하지만 한 번 알고 있으면 무궁무진하게 사용할 수 있는 것이기 때문에, 이 기회를 통해 꼭! 꼭! 꼼꼼하게! 이해하고 넘어갔으면 하는 마음에 작성한다.
그래서 클래스가 뭔데?
클래스란 말 그대로 class의 의미인 교실에 비유해보도록 하자.(대학생이라면 강의실을 생각해도 좋음) 어느 수업이나 다를 것 없이 수업을 시작하기 전에는 출석체크를 반드시 한다. 그렇다면 그 출석체크 명단 안에는 어떤 정보들이 들어있을까?
고등학교는 어떤진 모르겠지만 대학교의 경우에는 학생의 사진, 이름, 학과, 학번은 필수로 포함되어 있다. 다시 말해, 여러 사람의 여러 정보들이 모여 데이터를 이루고 있다는 것이다.
이름
학과
학번
이메일 주소
김가나
경제학과
1231
1231@경제.com
김다라
세무학과
1232
1232@세무.com
김마바
행정학과
1233
1233@행정.com
김사아
건축학과
1234
1234@건축.com
김자차
사회복지학과
1235
1235@사회.com
김카타
전기전자공학과
1236
1236@전기.com
김파하
교통공학과
1237
1237@교통.com
이러한 데이터들을 특정한 형태로 나타낼 수 있도록 하는 것이 바로 클래스이다. 도대체 무슨 말인지 모르겠어도 걱정하지 말고, 직접 써보자. 직접 써보면 이해가 간다. 적자생존! 적어야 산다!
클래스 만들기
class list:
pass
함수를 만들 때는 definition의 약자인 def를 사용했던 것처럼, 클래스를 만들 때는 class를 사용한다. 그리고, class 뒤에는 클래스의 이름을 적어준 뒤 ':'를 사용해주고, 일단 내용은 비워두기 위해 pass를 넣어두자. 이렇게 했다면 list라는 클래스의 생성은 완료된 것이다.
그렇다면 이제 클래스 내부에 학생의 이름, 학과, 전화번호, 이메일을 변수로 정의해보자.
class list:
def callname(self, name, major, number, email):
self.name = name
self.major = major
self.number = number
self.email = email
이렇게 작성했다면 클래스는 모두 정의한 것이다.
위 코드 내의 함수를 보면, 앞 글(모듈 만들기)에서 사용했던 것과는 다소 다른 부분이 있음을 알 수 있다. name, major, number, email 등은 단순하게 변수를 나열한 것이기 때문에 어렵지 않지만, self는 처음 본다. 하지만 self는 이해하기가 정말 어려우니 별도로 다루도록 하고, 여기서는 이 점만 기억하고 넘어가도록 하자. "클래스 내 함수의 경우, 맨 첫 번째 변수(인자)는 무조건 self여야 한다."
클래스 사용하기
class list:
def callname(self, name, major, number, email):
self.name = name
self.major = major
self.number = number
self.email = email
student1 = list()
student1.callname("김가나", "경제학과", "1231", "1231@경제.com")
이제 코드에 아래의 두 줄을 추가해주도록 하자.
클래스를 사용하기 위해서는 아래의 두 단계만 기억하면 된다. 1. 변수명 = 클래스명() 2. 변수명.클래스내 함수명(변수 입력)
그렇다면 이제 해당 코드 내에서 [변수명.변수]의 형태를 프린트하면, 입력한 값이 나오는 것을 확인할 수 있다.
뭔가 좀 허전하다. 적어도 출석 명부이니만큼 이름:김가나, 학과:경제학과 와 같은 형태로 나오는 편이 깔끔할 것 같으니 코드를 수정해주도록 하자.