Heim >Backend-Entwicklung >Python-Tutorial >Was ist die pythonischere Möglichkeit, einen String in Python 3 in Bytes umzuwandeln?
Bester Weg, String in Bytes in Python 3 zu konvertieren: erklärt
Python 3 löst beim Versuch einen TypeError aus Konvertieren Sie einen String direkt in Bytes, da der String die Pufferschnittstelle nicht unterstützt. Diese Fehlermeldung wirft die Frage auf: Welche der folgenden Methoden ist pythonischer?
b = bytes(mystring, 'utf-8') b = mystring.encode('utf-8')
Untersuchung des Bytes-Konstruktors
Eine Untersuchung der Dokumentation für Bytes zeigt, dass dies der Fall ist zeigt auf bytearray, das verschiedene Optionen zum Initialisieren eines Byte-Arrays bietet. Unter diesen Optionen sticht eine hervor:
bytearray(source[, encoding[, errors]])
Wenn Quelle eine Zeichenfolge ist, müssen die Parameter Kodierung und Fehler vorhanden sein bereitgestellt, wobei bytearray() die Zeichenfolge mit in Bytes umwandelt str.encode().
Pythonische Überlegungen
Während Bytes eine umfassendere Funktionalität über die String-Kodierung hinaus bietet, wird für die spezifische Aufgabe der Kodierung einer Zeichenfolge der Aufruf von some_string.encode(encoding) gilt als eher pythonischer. Dies ist in erster Linie auf seine Klarheit und Zielstrebigkeit zurückzuführen, da darin ausdrücklich die Absicht zum Ausdruck gebracht wird, „diese Zeichenfolge zu nehmen und sie mit dieser Kodierung zu kodieren“.
Im Gegensatz dazu bytes(some_string,kodierung) Es fehlt ein explizites Verb, wodurch die beabsichtigte Operation weniger offensichtlich wird.
Leistung und Implementierung
Die Analyse des Python-Quellcodes bestätigt, dass unicode_string.encode(encoding) intern PyUnicode_AsEncodedString aufruft, was dieselbe Implementierung ist, die von den Bytes verwendet wird () Konstruktor. Daher gibt es keinen Leistungs- oder Effizienzunterschied zwischen den beiden Methoden zur String-Kodierung.
Symmetrie und Lesbarkeit
Darüber hinaus unicode_string.encode(encoding) paart sich symmetrisch mit seiner Umkehrung, byte_string.decode(encoding), Bietet einen konsistenten und intuitiven Ansatz für die Konvertierung zwischen String- und Byte-Darstellungen.
Daher wird der Schluss gezogen, dass mystring.encode('utf-8') die pythonischere und bevorzugte Methode für ist Konvertieren einer Zeichenfolge in Bytes in Python 3.
Das obige ist der detaillierte Inhalt vonWas ist die pythonischere Möglichkeit, einen String in Python 3 in Bytes umzuwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!