Maison >développement back-end >Tutoriel Python >Comment convertir efficacement des chaînes en octets dans Python 3 ?
Lorsque vous rencontrez l'erreur "TypeError : 'str' ne prend pas en charge l'interface tampon", vous avez deux options pour convertir une chaîne en octets :
Choisir la méthode la plus pythonique
La documentation Python pour le type bytes suggère d'utiliser bytearray comme méthode préférée pour initialiser un tableau d'octets à partir d'un string :
bytearray([source[, encoding[, errors]]])
Dans cet esprit, puisque les octets peuvent effectuer diverses tâches au-delà de l'encodage de chaînes, il est logique que le constructeur accepte différents types de paramètres source.
Pour le codage de chaîne en particulier, l'utilisation de some_string.encode(encoding) est plus pythonique que bytes(some_string, encodage) :
De plus, unicode_string.encode(encoding) est également plus pythonique car son inverse est byte_string.decode(encoding), en maintenant la symétrie.
Optimisation des performances avec CPython
Si vous utilisez CPython, passer une chaîne Unicode à bytes appelle directement PyUnicode_AsEncodedString, qui est le sous-jacent implémentation de l'encodage. Par conséquent, appeler encode vous-même élimine un niveau d’indirection inutile et améliore potentiellement les performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!