더북(TheBook)

내부에 똑같은 문자들이 들어 있더라도 bytesstr 인스턴스가 같은지 비교하면 항상 False가 나온다(다음 예에서는 foo라는 아스키 인코딩된 문자열이 들어 있다).

print(b'foo' == 'foo')

>>>
False

% 연산자는 각 타입의 형식화 문자열(format string)에 대해 작동한다.

print(b'red %s' % b'blue')
print('red %s' % 'blue')

>>>
b'red blue'
red blue

하지만 파이썬이 어떤 이진 텍스트 인코딩을 사용할지 알 수 없으므로 str 인스턴스를 bytes 형식화 문자열에 넘길 수는 없다.

print(b'red %s' % 'blue')

>>>
Traceback ...
TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.