|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#26 |
|
Messages: n/a
Hébergeur: |
Le Wed, 24 Oct 2007 14:12:46 +0200, Fouff a écritÂ:
> Bien le bonjour à tous et toutes. > > Une question me gène depuis un bon moment. Dans du code que je vois, je > trouve très souvent la mise en forme de chaine de caractères de la forme > : > buf = "".join(("/Title (", title, ")\n")) f.write(buf) # f étant un > descripteur de fichier (ouvert en écriture). > > Ma question maintenant : > Quel est l'interêt de ce > buf = "".join(...) C'est un idiome Python connu, qui fonctionne, et tout développeur Python sait (devrais savoir) que ça permet de concaténer simplement une séquence de chaînes de caractères. > par rapport à un > buf = "/Title (", title, ")\n" ? Là tu crée un tuple, le f.write(buf) échouera: TypeError: argument 1 must be string or read-only character buffer, not tuple > Voire éventuellement en question subsidiaire par rapport à un bon vieux > buf = "/Title (%s)\n" % title ? Perso, s'il n'y a qu'un titre à insérer dans une chaîne, je préfèrerais cette forme. Le "".join() est plus adapté lorsque tu constitue dynamiquement une séquence de chaînes. > Si quelqu'un à une réponse autre que 42 à me fournir, je lui en serais > reconnaissant. Merci d'avance > Fouff 43. -- Laurent POINTAL - laurent.pointal@laposte.net |
|
|
|
#27 |
|
Messages: n/a
Hébergeur: |
Le Wed, 24 Oct 2007 14:12:46 +0200, Fouff a écritÂ:
> Bien le bonjour à tous et toutes. > > Une question me gène depuis un bon moment. Dans du code que je vois, je > trouve très souvent la mise en forme de chaine de caractères de la forme > : > buf = "".join(("/Title (", title, ")\n")) f.write(buf) # f étant un > descripteur de fichier (ouvert en écriture). > > Ma question maintenant : > Quel est l'interêt de ce > buf = "".join(...) C'est un idiome Python connu, qui fonctionne, et tout développeur Python sait (devrais savoir) que ça permet de concaténer simplement une séquence de chaînes de caractères. > par rapport à un > buf = "/Title (", title, ")\n" ? Là tu crée un tuple, le f.write(buf) échouera: TypeError: argument 1 must be string or read-only character buffer, not tuple > Voire éventuellement en question subsidiaire par rapport à un bon vieux > buf = "/Title (%s)\n" % title ? Perso, s'il n'y a qu'un titre à insérer dans une chaîne, je préfèrerais cette forme. Le "".join() est plus adapté lorsque tu constitue dynamiquement une séquence de chaînes. > Si quelqu'un à une réponse autre que 42 à me fournir, je lui en serais > reconnaissant. Merci d'avance > Fouff 43. -- Laurent POINTAL - laurent.pointal@laposte.net |
|
![]() |
| Outils de la discussion | |
|
|