Comments on: Le PEP8 et au delà, par la pratique http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Réchèr http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185266 Wed, 08 Feb 2017 08:38:40 +0000 http://sametmax.com/?p=22278#comment-185266 Pour le gros dictionnaire et le gros tuple, je conseille fortement d’ajouter une virgule après le dernier élément (quel que soit le nombre de ligne sur lequel vous écrivez la variable).

tpl = (
    'jaune',
    'bleu',
    'rouge',
    'noir',
    'octarine',
)

Ça devient ensuite beaucoup plus facile de rajouter des éléments ou de les réordonner. Il suffit de prendre systématiquement l’élément et la virgule qui vient juste après, sans avoir à réfléchir si c’est le dernier ou pas.

Python est l’un des rares langages permettant d’ajouter une virgule inutile à la fin des énumérations, autant en profiter.

Autre exemple : le JSON ne le permet pas, et c’est assez lourdingue. Dans Sublime Text, à chaque fois que je veux déplacer un élément de “Settings – Default” vers “Settings – User”, je me fais pourrir parce que j’ai oublié d’enlever la virgule finale.

]]>
By: Z http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185243 Tue, 07 Feb 2017 12:00:12 +0000 http://sametmax.com/?p=22278#comment-185243 Il y a YAPF (https://github.com/google/yapf) pour reformater le code

]]>
By: Poliorcetics http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185208 Mon, 06 Feb 2017 20:14:39 +0000 http://sametmax.com/?p=22278#comment-185208 Merci pour cet article, il m’aide beaucoup ! Le style d’écriture est très entraînant aussi. :)

]]>
By: Sam http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185168 Sun, 05 Feb 2017 14:23:30 +0000 http://sametmax.com/?p=22278#comment-185168 Elles ne sont pas privées. Tu pourrais vouloir open() en dehors d’un with pour retourner l’objet. Un return amène le with a appeler close(). Tu veux aussi garder get_topic afin d’autoriser plus tard un get_topic(name, default=None).

]]>
By: mothsart http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185145 Sat, 04 Feb 2017 23:37:49 +0000 http://sametmax.com/?p=22278#comment-185145 @Johaven : tu oublies les fusions de sources qui te font comparer 3 fichiers en même temps : du coup, tu passes à 240 caractères et non plus 80 donc pour moi ça reste toujours d’actualités… et puis dès que tu dépasses 80 caractères (et que ce n’est pas juste du string codé en dur ou du docstring) c’est que t’as à mon sens un soucis d’architecture. (l’exemple type : trop de boucles imbriqués)

@Sam : dans ton exemple sur DataSource, ne serait-t-il pas judicieux de mettre un underscore devant open, close et get_topic afin de signaler que ces fonctions sont désormais privés ?

]]>
By: Sam http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185094 Fri, 03 Feb 2017 14:21:12 +0000 http://sametmax.com/?p=22278#comment-185094 @yuiio: ouai il me manque un break.

@joseph: avec ta solution, tu donnes plus d’importance au dico qu’à ses composants. IMO le contenu est plus important ici.

]]>
By: joseph http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185092 Fri, 03 Feb 2017 13:32:53 +0000 http://sametmax.com/?p=22278#comment-185092 Super dans l’ensemble … mais pas du tout d’accord avec la partie “La longueur des lignes” (bon tu as prévenu que c’est le point le plus sujet à polémique ;))…

Utiliser 11 lignes pour définir dico, c’est du vice! dico = {0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None} est bien mieux.

Utiliser 11 lignes pour rien, c’est forcer l’utilisateur à scroller plus que de raison dans son code, … c’est aussi rendre le parsing de l’oeil difficile. Je m’explique. Si l’oeil est habitué à :

1 ligne de code = 1 action

tout va bien, on sait qu’en parcourant le code, on avance à peu près à ce rythme.

Avec de telles multilines (11 lignes pour rien), on casse le rythme : le cerveau doit se préparer au fait qu’à certains endroits 1 ligne peut être super importante, … à qu’à certains autres, 1 ligne “ne pèse même pas” 1 onzième de ligne, en terme d’importance.

Comment scroller efficacement et sereinement dans son code dans ces conditions? Impossible.

(Ma) conclusion : Définir dico dans ton exemple ne doit pas prendre plus d’une ligne.

]]>
By: Rber http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185091 Fri, 03 Feb 2017 13:32:08 +0000 http://sametmax.com/?p=22278#comment-185091 Thanks pour l’article

@yuiio a raison, les 2 examples n’ont pas le même effet.

Il faudrait placer un break dans le premier après l’exécution du code pour que ca concorde.

Et pour le coté grammar nazi. Il manque un ‘c’ a ‘pontuellement’ dansle dernier paragraphe.

Par ailleurs. Pour les linter, il y’ a pylint que j’aime notammenent pour travailler en groupes sur un projet python. il est ultra rigoureux et vérifie énormement de choses. Mais une fois un ensemble de règles et de contraintes bien définies, il simplifie la vie.

]]>
By: yuiio http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185090 Fri, 03 Feb 2017 13:11:49 +0000 http://sametmax.com/?p=22278#comment-185090 Y’a un truc que je pige pas entre ces deux bouts de code de l’exemple :

for x in foo:

if barbarbarbarbarbarbar(x):

meh()

Dans ce cas potentiellement meh() peut être exécutée plusieurs fois.

is_bar = (barbarbarbarbarbarbar(x) for x in foo)

if any(is_bar):

meh()

Alors que là meh() ne pourra jamais être exécuter plus d’une fois.

Les deux codes n’ont donc pas la même logique. C’est ça ou je me trompe ?

]]>
By: Johaven http://sametmax.com/le-pep8-et-au-dela-par-la-pratique/#comment-185089 Fri, 03 Feb 2017 13:10:39 +0000 http://sametmax.com/?p=22278#comment-185089 La PEP 8 est un peu plus souple à propos des 80 caractères, il est acceptable d’utiliser 100 caractères. Les 80 caractères c’est quand même un poil barbare en 2017 avec nos beaux écrans wide :)

]]>