객체 지향 프로그래밍(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' 즉, 없도록 만들었다
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 |