C급 개발자와 함께하는 파이썬
7. 클래스
파이썬의 모든것은 객체라는 작은 생명들로 이루어져 있으며 클래스는 이 객체를 만들기위한 일종의 명세서 입니다. 객체는 프로그램 코드를 구성하는 방법이며 복잡한 개념을 쉽게 만들어 준다.
파이썬은 클래스를 지원하므로 객체지향 프로그래밍을 할수 있습니다. 객체지향 프로그래밍은 여기서 배우기에는 너무 방대하기 때문에 여기서는 간략하게 객체지향 프로그래밍이 무엇인지에 대해서만 알아보도록 하겠습니다.
위키백과에서 객체지향 프로그래밍을 다음과 같이 정의 하였습니다.
“객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임의 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 “객체”들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다.”
이러한 객체지향 프로그래밍의 가장 기본이 되는 클래스에 대해서 알아보도록 하겠습니다. 특히 파이썬에서의 클래스를 만들고 사용하는 방법에 대해서 말이죠.
7.1 클래스 정의하기
클래스를 정의하는 방법은 아주 간단합니다. 위와 같이 class ClassName() 이렇게 정의하면 됩니다.
지금 클래스트 pass를 넣어 아무런 동작을 하지 않고 단지 클래스만을 선언한 것입니다.
그럼. 클래스에는 함수를 어떻게 만들까요. 자동차니까. 전진, 후진, 좌회전, 우회전의 기능를 가지고 있을 것입니다. 그럼 다음과 같이 만든다고 하면 클래스를 어떻게 만드는지 확인해보겠습니다.
run(), back(), left(), right()
위에는 자동차의 기본 동작을 함수로 정의하였습니다.
기본 동작은 위에서 말한것처럼. 전진, 후진, 좌회전, 우회전 입니다. 각각의 함수는 어떤 동작을 하는지 출력하는 기능을 가지고 있습니다. 우리가 자동차를 만드는것도 동일한 방법입니다. 자동차를 만들기 위해서 필요한 부품들이 있고 이러한 부품들이 모여서 동작을 하는데 이러한 동작하나하나가 바로 클래스에서 함수라고 할수 있습니다.