KPlay의 코딩 그리고 잡동사니

객체 지향 프로그래밍(Object Oriented Programming 줄여서 OOP)

파이썬은 객체 지향 프로그래밍이 가능한 대표적인 언어중 하나

객체(Object)의 정의 - 실세계의 '사물'

잠시 다른이야기를 하면

가령, A = 10 이라는 코드를 작성하면 프로그래머는 A라는 변수에 10이 바로 담겼다고 느낄 수 있지만

실제로는 특정한 메모리 공간에 10이 저장되고 그 메모리공간의 '주소값'이 A에게 전달된다.

이러한것을 '동적할당' 이라고 한다

동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 수 있도록 반납하고 다음에 요구가 오면 재 할당을 받을 수 있다

- 위키백과

다시 돌아와서 객체 지향 프로그래밍이란

가령 '자동차'라는 객체를 생성한다고 하면

●자동차 객체

- 자동차 고유 번호 : 정수형

- 자동차 모델 이름 : 문자열

- 자동차 출시 가격 : 정수형

- 자동차 연비 : 실수형

이럿듯 자동차와 관련있는 데이터들을 묶어서 관리하는 개념이다.

여기서 객체의 틀이 되는 것을 클래스(Class)라고 하고 클래스에서 생성된 Object(객체) 들을

'인스턴스(instance)'라고 한다.

(C언어에서도 비슷한 개념으로 구조체(Struct)라는것이 존재, C++로 넘어가면 완전한 객체 지향 프로그래밍으로 바뀐다)

여기서 비유하면 클래스는 '자동차를 찍어내는 공장 기계'이고, 인스턴스는 '자동차' 이다.

또, 인스턴스에 묶여있는 관련있는 데이터들을 속성(Property)라고 한다

속성은 변수가 될수도 함수가 될수도 있다.

ex)

●자동차 객체

- 자동차 고유 번호 : 1

- 자동차 모델 이름 : 아반떼 2017

- 자동차 출시 가격 : 1,900만원

- 자동차 연비 : 20km/l

- 엑셀을 밟는 기능(함수)

- 브레이크를 밟는 기능(함수)

이런식으로 '인스턴스'를 생성한다.

위에서 생성한 객체가 메모리공간에 이렇게 할당된다.

그 할당된 메모리공간의 주소를 A에 저장하는것

또한, 파이썬같은 경우는 C언어에서의 Null과 비슷하게 None 이라는 것을 사용할 수 있다.

위는 A가 None 즉, 어떠한 자료형도 가지지 않는다는 뜻이 되므로

A에다가 어떠한 값을 더하려고 하면 '타입 오류'가 발생한다

builtins.TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

위는 10이라는 수를 동적으로 메모리 공간에 할당한 후 그 주소값을 A가 가리키도록 만들었는데

라인 2에서 A가 가리키는것을 'None' 즉, 없도록 만들었다

'프로그래밍 언어 > Python' 카테고리의 다른 글

10. 리스트(List)의 기본 함수들 사용해보기  (0) 2020.10.04
9. 리스트(List)  (0) 2020.10.04
7. 파이썬으로 알고리즘 문제 풀어보기  (0) 2020.10.04
6. 기본 입출력  (0) 2020.10.04
5. 연산자와 수식  (0) 2020.10.04

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band