Python 02.변수

데이터가 담기는 그릇. 메모리에 저장된 데이터를 약속된 변수 이름을 통해서 접근할 수 있다.

C 와 같은 static typing 언어의 경우, 변수 선언 시 데이터 타입을 명시해 줘야 하며 데이터 타입에 맞는 데이터만을 담을 수 있다. 또한 컴파일 시 타입 체크를 해준다.

int a;
a = 10; //posible
a = "hello"; //imposible

하지만 python과 같은 dynamic typing 언어의 경우, 프로그램 실행시간에 변수의 데이터 타입을 결정한다. 이는 곧 프로그래머가 변수 선언을 할 필요가 없음을 뜻한다.

a = 10 #posible
a = "hello" #posible

  • 파이썬의 변수는 값을 직접 저장하지 않고 값이 있는 객체를 참조한다.
  • 파이썬은 일반적인 변수를 사용할 때조차도 객체를 만들어 참조한다. 그러므로 당연히 C 보다 느릴 수밖에 없다.
  • 파이썬 변수의 타입은 언제나 객체이다. 이 특성 때문에 변수 선언을 할 필요가 없으며 언제라도 다른 객체 참조가 가능하다.

일반(C 언어) 변수와 파이썬 변수의 차이

  1. 변수에 변수를 대입하는 경우, 전자는 데이터 값을 복사하지만 후자는 데이터 객체의 id 값을 복사해서 준다.
  2. 값을 지닌 변수에 다른 데이터 값을 직접 대입하는 경우, 전자는 단순히 값이 교체되지만 후자는 새로운 데이터2 객체가 생기고 참조한다.
  3. 파이썬에서 하나의 객체를 여러 변수가 참조하는 경우, 각 변수마다 한 객체의 id를 저장하고 객체는 단 하나만 생성된다.

Comments