Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man Strings in Python 3 effizient in Bytes?

Wie konvertiert man Strings in Python 3 effizient in Bytes?

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 17:19:10574Durchsuche

How to Efficiently Convert Strings to Bytes in Python 3?

So konvertieren Sie String in Bytes in Python 3 mit optimalem Pythonic-Stil

Wenn der Fehler „TypeError: 'str' unterstützt die Pufferschnittstelle nicht“ auftritt, werden Sie haben zwei Möglichkeiten, einen String in Bytes umzuwandeln:

  1. b = bytes(mystring, 'utf-8')
  2. b = mystring.encode('utf-8')

Auswahl der pythonischeren Methode

In der Python-Dokumentation für den Typ bytes wird empfohlen, bytearray als bevorzugte Methode zum Initialisieren eines Arrays von Bytes aus a zu verwenden string:

bytearray([source[, encoding[, errors]]])

Vor diesem Hintergrund ist es sinnvoll, dass der Konstruktor verschiedene Arten von Quellparametern akzeptiert, da Bytes über die Kodierung von Zeichenfolgen hinaus verschiedene Aufgaben ausführen können.

Für Insbesondere ist die Verwendung von some_string.encode(encoding) pythonischer als die Verwendung von bytes(some_string, Kodierung):

  • Ersteres ist hinsichtlich des beabsichtigten Zwecks selbsterklärender: eine Zeichenfolge mit einer bestimmten Kodierung kodieren.
  • Letzteres hat kein explizites Verb und ist weniger klar über seine Funktion.

Außerdem ist unicode_string.encode(encoding) auch pythonischer, weil seine Umkehrung es ist byte_string.decode(encoding), Beibehaltung der Symmetrie.

Optimierung der Leistung mit CPython

Bei Verwendung von CPython ruft die Übergabe einer Unicode-Zeichenfolge an Bytes direkt PyUnicode_AsEncodedString auf, das zugrunde liegende Element Implementierung von Encode. Daher eliminiert der Aufruf von „encode yourself“ unnötige Indirektionen und verbessert möglicherweise die Leistung.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Strings in Python 3 effizient in Bytes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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