더북(TheBook)

Q&A

 

 

Q. 객체에 바인딩되지 않은 변수에 접근하면 어떻게 되나?

A. 실행 시 파이썬이 NameError 예외를 발생시킨다.

 

Q. 변수형은 어떻게 결정하나?

A. 상당히 까다로운 질문이다. 자바 등의 다른 프로그래밍 언어와 달리 파이썬 변수는 데이터 타입을 가지고 있지 않다. 대신 변수에 바인딩된 객체가 형을 가지고 있다. 다음 코드에서 보는 것처럼 하나의 변수에 여러 개의 다른 데이터 타입 객체를 바인딩할 수 있다.

x = 'Hello, World'
x = 17
x = True

그러나 하나의 변수에 서로 다른 형의 객체를 바인딩하는 것은 좋지 않은 생각이다.

 

Q. 객체의 데이터 타입, 정체성, 값은 어떻게 알 수 있나?

A. 파이썬은 이런 용도에 사용하기 위한 내장 함수를 제공한다. type() 함수는 객체의 데이터 타입을, id() 함수는 객체의 정체성을, repr() 함수는 객체를 알아보기 쉽게 표현하는 문자열을 반환한다.

>>> import math
>>> a = math.pi
>>> id(a)
140424102622928
>>> type(a)
<class 'float'>
>>> repr(a)
'3.141592653589793'

일반적으로 프로그래밍할 때는 이런 함수들이 필요치 않지만, 디버깅할 때는 상당히 유용하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.