새소식

반응형
CS 지식/자료구조와 알고리즘(Python)

[python] Python objects(객체)란?

2022.12.31
  • -
반응형

1. Object(객체)

  • 전반적인 의미, 보여지고 만질 수 있는 물질적인 것.
  • 프로그래밍 관점, 메모리 상에 존재하는 함수와 변수의 조합

 

파이썬에서 모든 것은 object입니다. 

  • integers
  • strings
  • functions
  • files
  • etc.

 

2.  파이썬 정수(Integer)는 단순 정수보다 더 많은 것을 의미한다.

표준 파이썬의 구현은 C로 쓰여졌다. 이는 이것은 모든 파이썬 object가 단순히 교묘하게 위장된 C 구조체라는 것을 의미하며, 이 구조체는 그 가치뿐만 아니라 다른 정보도 포함합니다. 

 

예를 들어, x = 10000과 같이 파이썬에서 정수를 정의할 때 x는 단순히 'raw' 정수가 아닙니다. 이것은 실제로 여러 값을 포함하는 복합적인 C 구조에 대한 포인터입니다.

 

 

3. Python variables(파이썬 변수)

변수는 객체에 부착된 label입니다. 변수는 객체나 객체의 컨테이너가 아니며 객체에 대한 포인터나 참조(reference) 역할만 합니다.

 

=> 연산을 하면 단순히 값을 복사하는 것이 아니라, 가리키는 pointer 자체를 옮기는 것입니다.

 

4. Immutable objects(변경 불가능한 객체)

Immutable 객체는 이름 그대로 만들어진 이후에 변경될 수 없습니다.

 

파이썬에서의 Immutable 객체는 int, float, string, 등등이 있습니다.

우리가 새로운 객체를 할당하면 참조 링크는 깨집니다. 위 코드를 보면 크게 와 닿을 겁니다.

 

5. Data types(데이터 타입)

각 객체는 데이터 타입을 갖습니다.(예를 들어, int, float, 등..)

 

  • 객체를 가리키는 변수는 특정 타입을 갖지 않습니다.
  • 변수에 대한 데이터 타입을 선언할 필요가 없습니다.

python에서는 변수를 만들어서 데이터를 저장할 때 데이터 타입을 지정해 주지 않는습니다.(다른 언어와는 조금 다르죠?)

  • 우리가 저장하려는 데이터를 전달하면, 그 타입에 따라서 object가 만들어지고 그 object에 의해 data type이 결정되는 것입니다.
  • 그래서 변수라는 애는 단순히 그 object를 가리키는 reference로써 기능을 하기 때문에 data type이 없는 것입니다.

 

 

각 객체는 데이터 타입을 갖지만, 변수는 그렇지 않다.

 

6. Python Built-in Data types

위 표를 참고하면 파이썬에 내재된 데이터 타입의 특성을 확인하시면 좋을 것 같습니다.

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.