Python 3에서 문자열을 바이트로 변환하는 가장 좋은 방법: 설명
Python 3에서 시도할 때 TypeError가 발생합니다. 버퍼 인터페이스를 지원하지 않는 문자열로 인해 문자열을 바이트로 직접 변환합니다. 이 오류 메시지는 질문을 촉발합니다. 다음 중 어떤 방법이 더 Pythonic합니까?
b = bytes(mystring, 'utf-8') b = mystring.encode('utf-8')
바이트 생성자 탐색
바이트에 대한 문서를 조사해 보면 이것이 바이트 배열을 초기화하기 위한 다양한 옵션을 제공하는 bytearray를 가리킵니다. 이러한 옵션 중에서 눈에 띄는 옵션은 다음과 같습니다.
bytearray(source[, encoding[, errors]])
여기에서 source가 문자열인 경우 encoding 및 errors 매개변수는 다음과 같아야 합니다. 제공됩니다. bytearray()는 다음을 사용하여 문자열을 바이트로 변환합니다. str.encode().
파이썬 고려 사항
bytes는 문자열 인코딩 이상의 더 광범위한 기능을 제공하지만 문자열 인코딩이라는 특정 작업의 경우 some_string.encode(encoding)은 더 파이썬적인 것으로 간주됩니다. 이는 주로 "이 문자열을 가져와 이 인코딩으로 인코딩"하려는 의도를 명시적으로 명시하므로 명확성과 목적성이 있기 때문입니다.
반면,bytes(some_string, 인코딩) 명시적인 동사가 부족하여 의도한 작업이 불분명해집니다.
성능 및 구현
Python 소스 코드 분석을 통해unicode_string.encode(encoding)이 내부적으로 PyUnicode_AsEncodedString을 호출하는 것으로 확인되었습니다. 이는 바이트에서 사용되는 것과 동일한 구현입니다. () 생성자. 따라서 두 가지 문자열 인코딩 방식 사이에는 성능이나 효율성의 차이가 없습니다.
대칭성과 가독성
게다가unicode_string.encode(encoding)은 역 byte_string.decode(encoding)과 대칭적으로 쌍을 이룹니다. 문자열과 바이트 표현 간 변환에 일관되고 직관적인 접근 방식을 제공합니다.
따라서mystring.encode('utf-8')가 Python에 더 적합하고 선호되는 방법이라는 결론이 나왔습니다. Python 3에서 문자열을 바이트로 변환합니다.
위 내용은 Python 3에서 문자열을 바이트로 변환하는 더 Python적인 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!