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