본문 바로가기
언어/Python

[Python 기본 공부정리] 8-1. 클래스 - 클래스(class) 기본

by 민-Zero 2019. 12. 29.

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 

틀린 부분에 대한 지적은 감사합니다.

클래스를 사용하게 되면 객체지향 프로그래밍(object oriented programming)이 가능해진다.

2019/12/24 - [언어/C++] - [C++ 기본 공부정리] 13. 객체 지향 프로그래밍(Object Oriented Programming)

 

[C++ 기본 공부정리] 13. 객체 지향 프로그래밍(Object Oriented Programming)

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 클래스(class)란 앞서 정리한 구조체(struct)와 비슷한 구조를 가지고 있다. C++에서 구조체는 멤버..

min-zero.tistory.com

이곳에 객체지향 프로그래밍의 특징과 장단점에 대해 정리되어있다.

 

1. 클래스란?

클래스란 어떤 사물이나 주어진 문제를 해결하기 위해 추상화를 거쳐 만든 틀, 설계도면 같은 역할이다.

문법)

class 클래스명:

    멤버 변수

    ....

    멤버 함수

    ....

생성하고자 하는 객체의 속성 등을 멤버 변수로 해당 객체가 가진 기능을 멤버 함수(메소드)로 구현하게 된다.

이와 같은 구조로 사용자가 원하는 객체의 속성과 기능 등을 생성할 수 있다.

간단하게 Test 클래스를 생성해 멤버 변수 test_num에 10이란 값을 넣고 멤버 함수로 멤버 변수의 값을 출력해주는 함수를 생성했다. 멤버 변수와 함수는 클래스 내에 존재하는 변수와 함수이므로 앞에서 정리한 일반적인 변수와 함수처럼 생성하면 되고 차이점은 객체를 표현하기 위한 것이므로 접근 방법이 다를 뿐이다.

 

2. 객체의 멤버 접근

객체 즉, 여기서는 클래스의 멤버에는 멤버 변수와 멤버 함수(메소드)가 존재한다. 객체의 멤버에 접근하려면 먼저 객체를 생성하여야 한다. 위의 예제는 클래스를 선언만 하였기 때문에 실제로 메모리를 할당받은 인스턴스가 아니므로 아직 아무것도 할 수 없다.

위의 예제 Test() 클래스를 이용한 예시이다.

객체를 할당받는 방법은 일반적인 함수의 반환값을 저장할 때와 같다. Test() 클래스를 호출하고 해당 클래스를 받을 변수에 전달하면 된다. 따라서 위의 경우 test가 객체가 된다. 이와 같은 방법으로 클래스를 통해 동일한 기능을 수행할 수 있는 독립된 여러 개체를 생성 가능하다.

test1 = Test()

test2 = Test()

와 같은 방법으로 생성할 경우 Test클래스의 특징을 가지는 서로 다른 두 객체가 생성되는 것이다.

객체를 생성했으므로 객체가 가진 멤버에 접근할 수 있다. 그러기 위해선 멤버 접근 연산자 (.)를 이용하면 된다.

객체명.멤버 변수명 or 객체명. 멤버 함수의 방법으로 접근하면 된다. 따라서 이 예시에서는 test.test_num으로 멤버 변수를 test.print_num()으로 멤버 함수에 접근할 수 있다.

 

3. 멤버 함수의 self 매개변수

멤버 함수의 첫 번째 매개변수인 self 매개변수는 파이썬만의 특징으로 C++과 같은 다른 언어에서는 멤버 함수의 첫 번째 매개변수로 사용하지 않는다. self 매개변수의 특징은 다음과 같다.

① self라는 매개변수명은 관례적인 표현이다. 반드시 self로 사용하지 않아도 된다.

객체를 호출할 때 호출한 객체 자신을 전달하기 위한 매개변수이다. (C++의 this와 유사하다)

③ 멤버 함수의 선언 및 정의 시 사용되며 호출 시에는 사용되지 않는 매개변수이다.

④ self는 매개변수로 지역변수처럼 보이지만 객체 자신을 참조하는 매개변수 이므로 객체 내 모든 멤버에 접근 가능

 

멤버 함수의 생성 시에는 self매개변수가 존재하지만 호출할 때에는 아무런 값이 전달되지 않는다.

해당 그림처럼 self 매개변수는 어떤 객체의 멤버를 이용해야 하는지를 알려준다고 이해하면 된다.

 

댓글