• [^] # Re: J'ai rien compris...

    Posté par . En réponse au journal Il faut sauver le soldat %. Évalué à 5.

    Dans la philosophie de Python, il ne devrait exister qu'un seul moyen à la fois optimal et unique pour faire une tâche en particulier. L'avantage du caractère % utilisé dans le formatage, et qu'il est concis et proche du C, donc facile à adopter pour des personnes qui connaissent déjà ce langage.


    Par exemple :

    num_loto = 42
    je_gagne = 10000
    print "mon numero de loto est %d, je gagne %d"%(num_loto, je_gagne)

    Maintenant, cette caractéristique faisait double emploi avec l'utilisation des dictionnaires :

    ma_phrase = "bonjour %(perso1)s, bonjour %(perso2)s"%{'perso1':'julia','perso2':'franz'}
    print ma_phrase

    On a aussi les templates :

    import string
    ma_phrase = string.Template('$arg1 additionne a $arg2 donne $arg3')
    ma_phrase.substitute(arg1='1', arg2='2', arg3='3')
    print ma_phrase


    Tout ça fait qu'il est difficile de s'y retrouver pour un débutant qui voudrait apprendre ce langage. Quel outil de formatage ? Dans quelle condition ? Et on s'éloigne alors de la philosophie de Python.

    Ceux qui viennent du C se retrouveront facilement dans le formatage par arguments dans la chaînes, ce qui est un ersatz et est vraiment hétérogène avec le reste du langage.

    Python3, en cassant la compatibilité ascendante, vient résoudre ce genre de petits problèmes du langage.

    Mais les nostalgiques protestent, parce que ça va demander des efforts de se ré-adapter alors qu'on avait déjà une méthode connue.