Heim > Backend-Entwicklung > Python-Tutorial > Python-String in Bytes: „bytes()' vs. „encode()' – Was ist pythonischer?

Python-String in Bytes: „bytes()' vs. „encode()' – Was ist pythonischer?

Barbara Streisand
Freigeben: 2025-01-02 15:26:40
Original
1019 Leute haben es durchsucht

Python String to Bytes: `bytes()` vs. `encode()` — Which is More Pythonic?

Konvertieren von Strings in Bytes in Python 3

Der unvermeidbare Fehler „TypeError: 'str' unterstützt die Pufferschnittstelle nicht“ tritt häufig auf, wenn Ich versuche, eine Zeichenfolge in Bytes umzuwandeln. Um dieses Problem anzugehen, werden zwei Hauptmethoden vorgeschlagen:

b = bytes(mystring, 'utf-8')

b = mystring.encode('utf-8')
Nach dem Login kopieren

Welche Methode gilt als pythonischer?

Bytes und Bytearrays

Konsultieren Sie die Python-Dokumentation für Bytes. Beachten Sie, dass Sie dadurch zu bytearray weitergeleitet werden, das einem umfassenderen Zweck dient als nur der Kodierung von Zeichenfolgen.

bytearray([source[, encoding[, errors]]])
Nach dem Login kopieren

Bytearray initialisiert eine veränderbare Folge von Ganzzahlen aus verschiedenen Quellen, einschließlich Zeichenfolgen:

  • Für String-Quellen wird str.encode() verwendet.
  • Andere unterstützte Quellen umfassen Ganzzahlen, Puffer und Iterable von ganzen Zahlen.

Pythonische Überlegungen

Um einen String zu kodieren, gilt some_string.encode(encoding) als eher pythonisch. Die Verwendung der Methode encode() drückt eindeutig die Absicht aus, die Eingabezeichenfolge mithilfe einer bestimmten Codierung in Bytes umzuwandeln. Der bytes()-Konstruktor eignet sich zwar für umfassendere Operationen, ist in diesem Szenario jedoch weniger explizit.

Darüber hinaus spiegelt unicode_string.encode(encoding) die Symmetrie von byte_string.decode(encoding) für die Rückkonvertierung von Bytes in Strings wider , wodurch die Lesbarkeit und Konsistenz des Codes verbessert wird.

Intern Implementierung

Die Implementierung von CPython konvertiert Unicode-Zeichenfolgen mithilfe von PyUnicode_AsEncodedString in Bytes, was im Wesentlichen die Methode encode() intern aufruft. Daher erspart Ihnen der direkte Aufruf von encode() einen zusätzlichen Schritt.

Das obige ist der detaillierte Inhalt vonPython-String in Bytes: „bytes()' vs. „encode()' – Was ist pythonischer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage