객체란 무엇일까요?
파이썬 용어 설명집은 다음과 같이 이야기 합니다.
https://docs.python.org/3/glossary.html
Glossary — Python 3.9.7 documentation
The implicit conversion of an instance of one type to another during an operation which involves two arguments of the same type. For example, int(3.15) converts the floating point number to the integer 3, but in 3+4.5, each argument is of a different type
docs.python.org
Object ?
Any data with state (attributes or value) and defined behavior (methods).
Also the ultimate base class of any new-style class.
파이썬에서는 상태와 행동을 가진 모든 데이터를 객체로 정의하고 있습니다.
Object = State + Behavior
알고는 있지만 너무 애매하고 추상적인 이 개념을 구체적인 예시를 들어 생각 해 봅시다.
우리 모두가 알만한 게임 두가지를 들어볼까요?
첫번째, 스타크래프트
이 게임에는 테란이라는 종족의 유닛인 '마린'이 있습니다.
마린은 기본적으로 고유의 공격력, 방어력 그리고 체력을 지니고 있는데 이것이 상태 입니다.
그리고 공격과 이동이라는 행동을 할 수 있죠.
두번째, LOL
이 게임의 캐릭터 중 이즈리얼이라는 챔피언이 있습니다.
이즈리얼은 기본적으로 고유의 스탯이 있습니다. 이것이 바로 '상태' 입니다.
그리고 공격과 이동 그리고 스킬을 사용하는데 그것들이 이즈리얼이 할 수 있는 '행동'입니다.
이러한 상태와 행동을 가진 데이터를 하나의 객체로 볼 수 있습니다.
여기서 클래스라는 개념을 추가 해 보도록 하겠습니다.
클래스(Class)란?
똑같은 무언가를 계속해서 만들어 낼 수 있는 설계 도면입니다.
우리는 게임을 할 때 똑같은 마린을 계속 생산해 낼 수 있고
게임시작 시 똑같은 이즈리얼 챔피언을 플레이 하게 됩니다.
Python과 같은 객체지향 프로그래밍 언어에서는
위와 같이 생성되는 객체의 상태(state)를 속성,애트리뷰트(attribute),
행동(behavior)을 메소드(Method) 라 부릅니다.
그리고 해당하는 클래스의 구조로 저장공간에 할당된 객체의 실체를 인스턴스(instance)라고 정의합니다.
인스턴스는 객체에 포함되는 개념이라고 볼 수 있습니다.
마치 배럭에서 마린이 생산되어 나와 실체화 되면 하나의 객체이자 인스턴스인것이죠.
이번 글에서는 객체 , 클래스 , 애트리뷰트 , 메소드 , 인스턴스 에 대해 알아보았습니다.
추후 내용을 보충하여 더 구체적인 내용으로 찾아 오겠습니다.
감사합니다.
'컴퓨터공학 > python' 카테고리의 다른 글
[Numpy] ndarray를 알아보자2(reshape, resize,copy,view) (0) | 2021.09.30 |
---|---|
[Numpy] ndarray에 대해 (0) | 2021.09.30 |
[python] 파이썬이 동작하는 방식에 대해서2 (가상머신) (0) | 2021.09.30 |
[python] 파이썬이 동작하는 방식에 대해서 1 (0) | 2021.09.28 |
[Python] 파이썬은 인터프리터(Interpreter) 언어 인가요? (0) | 2021.09.28 |