파이썬, 객체 지향 프로그래밍

참고 : 널널한 교수의 코딩 클래스


파이썬 : 객체지향 프로그래밍 언어

  • 객체가 중심이 된다 & 참조 변수를 통해 해당 객체에 접근
  • 파이썬의 변수 vs C의 변수
    • 파이썬 : 변수는 “동적으로” 참조하는 객체가 지정되는 구조
    • C 언어 : 변수가 생성되고, 해당 변수에 값이 저장되는 구조


Example

C : 변수 중심

int a; // "정수형" 변수 선언
a = 100; // "정수형" 변수 a에 100을 할당
a = 200; // "정수형" 변수 a에 200을 할당


Python : 객체 중심

a = 100; # 100이라는 객체 생성 & a라는 참조변수가 이 객체를 참조
a = 200; # 200이라는 객체 생성 & a라는 참조변수가 이 객체를 참조
>>> a=100
>>> print(id(a))
140736179684224
>>> print(id(100))
140736179684224
  • 100과 a의 id가 동일함을 알 수 있다
    • 모든 객체는 고유한 id를 가진다
    • a라는 참조 변수가, 100이라는 객체를 참조하기 때문!


연산자(=)의 역할

  • 객체에 대한 “참조”를 만들어줌
  • 객체를 “여러 변수가 참조”할 수 있다
>>> a=100
>>> b=a
>>> print(id(a))
140736179684224
>>> print(id(b))
140736179684224
>>> print(id(100))
140736179684224


figure2


재참조

>>> a=10
>>> b=a
>>> a=20
>>> print(id(a)==id(20), id(20))
True 140736179681664
>>> print(id(b)==id(10), id(10))
True 140736179681344