관리 메뉴

Data Analysis for Investment & Control

Python 클래스로 프로그래밍 하기 본문

Code/Python

Python 클래스로 프로그래밍 하기

synaptic 2016. 6. 23. 01:01



이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다.



이번 포스트는 지난 글에서 언급했었던 클래스의 사용이라는 주제로 작성하고자 한다.


다른 프로그래밍 언어와 마찬가지로 Python을 배울 때, 언어의 특징, 자료형, 제어문, 입출력 등을 배우게 되는데 클래스 형태의 프로그래밍도 다른 기초 내용과 같이 잘 정리되어 있는 사이트들이 많다. 그 중 하나를 추천하자면 다음의 링크를 통해 클래스에 대한 기초적인 내용을 학습하기 바란다.


>> 파이썬 프로그래밍의 핵심, 클래스



여기서는 클래스를 코딩할 때 다음과 같이 유의해야 할 사항들을 중심으로 정리하려고 한다.


- 기본 인자(Parameter) self

- 생성자 __init__(self)

- 멤버변수 선언



기본 인자 self


클래스를 선언할 때 자기 자신을 가르키는 키워드로 Python에서는 self를 쓴다. C++에서의 this와 같은 개념이라고 생각하면 될 것 같다. 다만, 함수 인자로 기본적으로 self가 포함된다는 사실이 다르다. 다음의 예제를 보자.


def url_push(self, url):
self.UrlQueue.append(url)

def 키워드를 통해 url_push라는 멤버 함수를 정의 하였다. 함수 파라미터로 self와 url이 있으며 self는 멤버 함수를 정의할 때 모든 경우에 다 포함되며 함수 내부에서 멤버 변수나 다른 멤버 함수를 사용시에 self를 사용하여 접근한다. 마치 C++의 this->의 사용과 비슷하다고 할 수 있겠다. 위의 함수 내용을 보면 멤버 변수인 UrlQueue로의 접근을 위해 self.UrlQueue와 같이 사용한다.


생성자 __init__(self)


보통 C++이나 C#과 같은 언어들은 클래스 이름이 생성자 함수로 사용되지만 Python에서는 모든 클래스가 마찬가지로 __init__ 형태로 기술한다.

class Repository:
def __init__(self):
self.UrlQueue = []

위의 예제에서는 Repository라는 클래스의 생성자로 __init__(self): 와 같은 형태로 정의했다. __init__의 색깔도 다르다는 것에서 예약어라는 것을 알 수 있다. 생성자의 인자는 default로 self가 존재하며 필요에 따라 추가적인 정의도 가능하다. 예를들어, name이라는 인자를 통해 클래스의 이름을 미리 초기화 할 수도 있다.

위의 예제에서는 UrlQueue라는 배열 변수를 초기화 하는 동작을 수행한다.


멤버변수 선언

멤버변수 선언은 간단하다. 위의 생성자에서의 예제에서 알 수 있듯이 self.variableName 형태로 기술하여 정의한다. 위의 예제에서는 배열 변수를 선언한 것이고, 만약 클래스의 이름에 대한 변수를 선언하고 싶다면, self.name = "ClassName"과 같은 형태로 작성한다.



아직은 Python에 대해 기초적인 것 밖에는 모르는 상태이기 때문에 클래스 사용에 관해 더 숙지해야할 사항이 있다면 나중에 추가적으로 정리를 할 것이다.

이번 포스트는 여기까지하기로 한다.









(내용이 마음에 드셨다면 아래의 '공감' 버튼을 눌러주세요^^)

0 Comments
댓글쓰기 폼