Python 변수는 값을 담는 상자가 아니라 객체에 붙인 이름이다. 대입은 객체를 복사하지 않고 이름을 다시 묶는다.

a = [1, 2]
b = a
b.append(3)
print(a)  # [1, 2, 3]

기본 타입에는 정수 `int`, 실수 `float`, 참과 거짓 `bool`, 문자열 `str`, 빈 값을 뜻하는 `None`이 있다. 정수는 메모리가 허용하는 범위에서 커지고, float는 보통 IEEE 754 배정밀도다. 금액처럼 십진 오차가 허용되지 않으면 `decimal.Decimal`을 검토한다.

`type(value)`는 실제 타입을, `isinstance(value, T)`는 상속 관계를 포함한 타입 여부를 확인한다. 일반 코드에서는 타입을 반복 검사하기보다 객체가 제공하는 동작을 사용하는 편이 Python답다.

Python 2. 이름, 객체, 기본 타입의 핵심 흐름도
그림. Python 대입은 객체 복사가 아니라 이름과 객체의 연결이다.