첫 번째 함수는 bytes나 str 인스턴스를 받아서 항상 str을 반환한다.
def to_str(bytes_or_str): if isinstance(bytes_or_str, bytes): value = bytes_or_str.decode('utf-8') else: value = bytes_or_str return value # str 인스턴스 print(repr(to_str(b'foo'))) print(repr(to_str('bar'))) print(repr(to_str(b'\xed\x95\x9c'))) # UTF-8에서 한글은 3바이트임 >>> 'foo' 'bar' '한'
두 번째 함수는 bytes나 str 인스턴스를 받아서 항상 bytes를 반환한다.
def to_bytes(bytes_or_str): if isinstance(bytes_or_str, str): value = bytes_or_str.encode('utf-8') else: value = bytes_or_str return value # bytes 인스턴스 print(repr(to_bytes(b'foo'))) print(repr(to_bytes('bar'))) print(repr(to_bytes('한글'))) >>> b'foo' b'bar' b'\xed\x95\x9c\xea\xb8\x80'