|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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(...) par rapport à un buf = "/Title (", title, ")\n" ? Voire éventuellement en question subsidiaire par rapport à un bon vieux buf = "/Title (%s)\n" % title ? Si quelqu'un à une réponse autre que 42 à me fournir, je lui en serais reconnaissant. Merci d'avance Fouff |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
> Ma question maintenant :
> Quel est l'interêt de ce > buf = "".join(...) > par rapport à un > buf = "/Title (", title, ")\n" ? A mon humble avis, c'est réservé à ceux qui fument... |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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(...) > par rapport à un > buf = "/Title (", title, ")\n" ? > > Voire éventuellement en question subsidiaire par rapport à un bon vieux > buf = "/Title (%s)\n" % title ? A part rendre le code imbitable, je ne vois pas bien. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Fouff wrote:
> Bien le bonjour à tous et toutes. > Quel est l'interêt de ce > buf = "".join(...) un gus qui a mal lu ou plutôt pas relu, et encore moin compris les questions concernant l'inneficacité de la concaténation des chaines qui affectaient les version postérieures de python. > par rapport à un > buf = "/Title (", title, ")\n" ? pas pareil tu vas introduire un espace entre title et les parenth?ses encadrantes > Voire éventuellement en question subsidiaire par rapport à un bon vieux > buf = "/Title (%s)\n" % title ? propre, clair et concis quoi que la forme canonique soit plutôt buf = "/Title (%s)\n" % ( title ) mais je chipote > Si quelqu'un à une réponse autre que 42 à me fournir, je lui en serais reconnaissant. autre hypoth?se, l'auteur du code qui t'interpelles veux rendre son code abscon et il y a arrive ![]() Eric |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Eric Deveaud a écrit :
>> Quel est l'interêt de ce >> buf = "".join(...) > > un gus qui a mal lu ou plutôt pas relu, et encore moin compris les questions > concernant l'inneficacité de la concaténation des chaines qui affectaient les > version postérieures de python. > Même s'il est établi que les nouvelles versions gêrent mieux la concaténation des chaînes avec "+", je continue toujours à préférer les "".join(maliste) selon les bonnes vieilles recommandations, sachant qu'un string est immuable. C'est maintenant hors-propos où cela a été optimisé pour que la différence ne se "voit" plus trop ? Kib. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Eric Deveaud a écrit :
> propre, clair et concis > quoi que la forme canonique soit plutôt > buf = "/Title (%s)\n" % ( title ) > mais je chipote uf = "/Title (%(title)s)\n" % {'title': title } -- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Eric Deveaud a écrit :
> Fouff wrote: (snip) >> Voire éventuellement en question subsidiaire par rapport à un bon vieux >> buf = "/Title (%s)\n" % title ? > > propre, clair et concis > quoi que la forme canonique soit plutôt > buf = "/Title (%s)\n" % ( title ) buf = "/Title (%s)\n" % (title,) Hormis le cas de la notation littérale pour le tuple vide, c'est la virgule qui fait le tuple, pas les parenthèses. > mais je chipote !-) |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Encolpe Degoute a écrit :
> Eric Deveaud a écrit : > >> propre, clair et concis >> quoi que la forme canonique soit plutôt >> buf = "/Title (%s)\n" % ( title ) >> mais je chipote > > uf = "/Title (%(title)s)\n" % {'title': title } > uf = "/Title (%(title)s)\n" % locals() !-) |
|
![]() |
| Outils de la discussion | |
|
|