PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > Question philosophique ... ou pas !
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Question philosophique ... ou pas !

Réponse
 
LinkBack Outils de la discussion
Vieux 24/10/2007, 13h12   #1
Fouff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Question philosophique ... ou pas !

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
  Réponse avec citation
Vieux 24/10/2007, 13h21   #2
jean-michel bain-cornu
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

> 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...
  Réponse avec citation
Vieux 24/10/2007, 13h21   #3
jean-michel bain-cornu
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

> 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...
  Réponse avec citation
Vieux 24/10/2007, 13h30   #4
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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.

  Réponse avec citation
Vieux 24/10/2007, 13h30   #5
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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.

  Réponse avec citation
Vieux 24/10/2007, 13h55   #6
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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
  Réponse avec citation
Vieux 24/10/2007, 13h55   #7
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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
  Réponse avec citation
Vieux 24/10/2007, 14h10   #8
kib
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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.

  Réponse avec citation
Vieux 24/10/2007, 14h10   #9
kib
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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.

  Réponse avec citation
Vieux 24/10/2007, 14h59   #10
Encolpe Degoute
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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
  Réponse avec citation
Vieux 24/10/2007, 14h59   #11
Encolpe Degoute
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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
  Réponse avec citation
Vieux 24/10/2007, 17h06   #12
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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


!-)
  Réponse avec citation
Vieux 24/10/2007, 17h06   #13
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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


!-)
  Réponse avec citation
Vieux 24/10/2007, 17h07   #14
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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()

!-)
  Réponse avec citation
Vieux 24/10/2007, 17h07   #15
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

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()

!-)
  Réponse avec citation
Vieux 24/10/2007, 17h08   #16
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

kib a écrit :
> 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 ?


Pour autant que je sache, on a maintenant, au moins dans certains cas,
de meilleures perfs avec la concaténation.

L'intérêt de la liste est surtout les manipulations qu'elle permet
*avant* la construction du résultat final (tris, filtres etc).
  Réponse avec citation
Vieux 24/10/2007, 17h08   #17
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

kib a écrit :
> 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 ?


Pour autant que je sache, on a maintenant, au moins dans certains cas,
de meilleures perfs avec la concaténation.

L'intérêt de la liste est surtout les manipulations qu'elle permet
*avant* la construction du résultat final (tris, filtres etc).
  Réponse avec citation
Vieux 24/10/2007, 17h52   #18
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bruno Desthuilliers wrote:
> Eric Deveaud a écrit :
> > 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

>
> !-)


? chipoteur, chipoteur et demi, mais mercide cette remarque tr?s pertinente.

Eric qui part se mettre des baffes ;-)
  Réponse avec citation
Vieux 24/10/2007, 17h52   #19
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bruno Desthuilliers wrote:
> Eric Deveaud a écrit :
> > 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

>
> !-)


? chipoteur, chipoteur et demi, mais mercide cette remarque tr?s pertinente.

Eric qui part se mettre des baffes ;-)
  Réponse avec citation
Vieux 24/10/2007, 17h53   #20
MC
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bonsoir !

Perso, je vois une explication possible : Le développeur ne sait pas,
au moment où il écrit le code, quel délimiteur il (devra) utiliser(a).
Dès lors, avec le code cité, il pourra très facilement modifier.

Exemples :

buf = ";".join(("/Title (", title, ")\n"))
buf = "\t".join(("/Title (", title, ")\n"))
buf = " - ".join(("/Title (", title, ")\n"))
buf = "|".join(("/Title (", title, ")\n"))

Maintenant, est-ce que cette hypothèse est la bonne ?






--
@-salutations

Michel Claveau


  Réponse avec citation
Vieux 24/10/2007, 17h53   #21
MC
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bonsoir !

Perso, je vois une explication possible : Le développeur ne sait pas,
au moment où il écrit le code, quel délimiteur il (devra) utiliser(a).
Dès lors, avec le code cité, il pourra très facilement modifier.

Exemples :

buf = ";".join(("/Title (", title, ")\n"))
buf = "\t".join(("/Title (", title, ")\n"))
buf = " - ".join(("/Title (", title, ")\n"))
buf = "|".join(("/Title (", title, ")\n"))

Maintenant, est-ce que cette hypothèse est la bonne ?






--
@-salutations

Michel Claveau


  Réponse avec citation
Vieux 24/10/2007, 17h55   #22
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bruno Desthuilliers wrote:
> 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()


J'aime déja pas trop (question de gout personel) les formes avec les
dictionnaires, qui sont pourtant beaucoup plus lisibles qu'une succession de
variables qu'il faut suivre dnas le bon ordre je n'avait pas pensé au locals(),
va falloir que je m'habitue.

merci
  Réponse avec citation
Vieux 24/10/2007, 17h55   #23
Eric Deveaud
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

Bruno Desthuilliers wrote:
> 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()


J'aime déja pas trop (question de gout personel) les formes avec les
dictionnaires, qui sont pourtant beaucoup plus lisibles qu'une succession de
variables qu'il faut suivre dnas le bon ordre je n'avait pas pensé au locals(),
va falloir que je m'habitue.

merci
  Réponse avec citation
Vieux 24/10/2007, 21h22   #24
kib
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

MC a écrit :
> Bonsoir !
>
> Perso, je vois une explication possible : Le développeur ne sait pas, au
> moment où il écrit le code, quel délimiteur il (devra) utiliser(a). Dès
> lors, avec le code cité, il pourra très facilement modifier.
>
> Exemples :
>
> buf = ";".join(("/Title (", title, ")\n"))
> buf = "\t".join(("/Title (", title, ")\n"))
> buf = " - ".join(("/Title (", title, ")\n"))
> buf = "|".join(("/Title (", title, ")\n"))
>
> Maintenant, est-ce que cette hypothèse est la bonne ?
>
>
>
>
>
>

Je ne pense pas car alors on pourrait tout aussi bien faire ça par
concaténation et changer DELIM en ce qu'on veut:

DELIM = ";"
bug = "/Title (" + DELIM + title + DELIM + ")\n"
  Réponse avec citation
Vieux 24/10/2007, 21h22   #25
kib
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Question philosophique ... ou pas !

MC a écrit :
> Bonsoir !
>
> Perso, je vois une explication possible : Le développeur ne sait pas, au
> moment où il écrit le code, quel délimiteur il (devra) utiliser(a). Dès
> lors, avec le code cité, il pourra très facilement modifier.
>
> Exemples :
>
> buf = ";".join(("/Title (", title, ")\n"))
> buf = "\t".join(("/Title (", title, ")\n"))
> buf = " - ".join(("/Title (", title, ")\n"))
> buf = "|".join(("/Title (", title, ")\n"))
>
> Maintenant, est-ce que cette hypothèse est la bonne ?
>
>
>
>
>
>

Je ne pense pas car alors on pourrait tout aussi bien faire ça par
concaténation et changer DELIM en ce qu'on veut:

DELIM = ";"
bug = "/Title (" + DELIM + title + DELIM + ")\n"
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 02h53.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,27644 seconds with 33 queries