더북(TheBook)

이진 8비트 값과 유니코드 문자열을 파이썬에서 다룰 때 꼭 기억해야 할 두 가지 문제점이 있다.

첫 번째 문제점은 bytesstr이 똑같이 작동하는 것처럼 보이지만 각각의 인스턴스는 서로 호환되지 않기 때문에 전달 중인 문자 시퀀스가 어떤 타입인지를 항상 잘 알고 있어야 한다는 점이다.

+ 연산자를 사용하면 bytesbytes에 더하거나 strstr에 더할 수 있다.

print(b'one' + b'two')
print('one' + 'two')

>>>
b'onetwo'
onetwo

하지만 str 인스턴스를 bytes 인스턴스에 더할 수는 없다.

b'one' + 'two'

>>>
Traceback ...
TypeError: can't concat str to bytes

bytes 인스턴스를 str 인스턴스에 더할 수도 없다.

'one' + b'two'

>>>
Traceback ...
TypeError: can only concatenate str (not "bytes") to str
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.