Python: à l'aide de 4 espaces pour l'indentation. Pourquoi?
Tandis que le codage en python, je suis en utilisant seulement 2 espaces pour indenter, assurez-vous PEP-8 vous recommande vraiment d'avoir 4 places, mais, historiquement, pour moi, c'est inhabituel.
Donc, quelqu'un peut-il me convaincre d'utiliser 4 espaces au lieu de 2? Quels avantages et inconvénients?
P. S. Et enfin, quelle est la manière facile de convertir tous les base de code existante à partir de 2 places à 4 places?
P. P. S. PEP-8 srictly recommandons de ne pas utiliser les onglets pour le retrait. lire ici
Donc, pour résumer:
Pour:
- D'avoir plus d'espace pour organiser quand wraping chaîne de plus de 80 lignes de long.
- Pouvez copier le code à partir d'extraits de code et il fonctionne, tout simplement.
Contre:
- Plus profondes niveau d'imbrication des déclarations que vous avez moins d'espace pour le code.
Grâce.
- Tu vas veux faire un wiki de la communauté ou ce sera probablement fermé. C'est un très discutable sujet que tout le monde a une opinion sur.
- Je suis d'accord que c'est très subjectif; mais il est intéressant de noter que le P. S. est une question valable.
- Doit avoir été deux questions distinctes
- Il est très subjective et une question d'opinion. Bien sûr, le droit d'opinion (;) ), c'est que tout le monde devrait utiliser les onglets afin qu'ils puissent espace de les choses comme elles préfèrent avec les préférences de l'éditeur.
- D'accord.
- Ne veux pas faire une guerre sainte d'elle. Je vais résumer ajouter à mes pensées, pourquoi je devrais utiliser 4 espaces au lieu de 2, et avec des échantillons.
- Je ne vois pas de raison que ce soit, de près cette question. Il demande légitime de la programmation de la question, puisque les programmes sont destinés à être lue à la fois comme à l'écrit. Et étant subjectif n'est pas question à moins.
- Si vous étiez à la suite de la Ruby lignes directrices, vous seriez à l'aide de deux espaces parce que c'est ce que le groupe de fan-boys décidé 🙂 j'imagine que l'on peut écrire un script Python pour lire votre code Python et de remplacer deux espaces avec quatre espaces assez facilement...
- J'ai juste vu cette question sur la barre latérale et de la pensée: Attendez, Python 4? Ai-je raté quelque chose? Le titre pourrait avoir besoin d'une mise en forme...
- pour atom: installation facile serait de créer des espaces = 4 pour les onglets et l'utilisation de la "soft onglets" dans l'atome. soft tabs signifie que lorsque vous appuyez sur la touche tab, il va être traités comme des espaces 4.
Vous devez vous connecter pour publier un commentaire.
Tout le monde utilise 4 espaces. C'est la seule raison d'utiliser 4 espaces que j'ai appris et accepté. Dans mon cœur, je veux toujours utiliser les onglets (1 tiret de caractères par tiret, du sens, non? Séparé de retrait à partir d'autres espaces. Je n'aime pas que les onglets peuvent être affiche comme largeurs différentes, qui ne fait aucune différence syntaxique. Le pire qui puisse arriver est que certains commentaires ne sont pas alignés. L'horreur!) mais j'ai accepté que depuis le python de la communauté dans son ensemble utilise 4 espaces, j'ai utiliser 4 espaces. De cette façon, je peux assembler du code à partir de fragments d'autres ont écrit, et tout cela fonctionne.
'tab_size' = 4
juste pour python, et par défaut'tab_size' = 2
pour d'autres langues (comme le JavaScript, etc).J'aime le fait que quatre espaces bien tirets à l'intérieur du code d'une fonction, parce que def + un espace de quatre caractères.
if
, parce que laif
+ un espace font de trois caractères.Je pense que la vraie question est pourquoi l'espace et non par onglets.
Onglets sont nettement mieux:
Avantages d'espaces:
Il n'y a pas de "mieux" en retrait. C'est un religieux de saint-guerre sujet. Quatre est agréable parce qu'il suffit de faire l'indentation clair, mais pas autant que la totalité de votre écran est la plupart du temps des espaces et que vous avez à faire défiler horizontalement pour lire la moitié du programme.
Il a également l'avantage d'être un "demi-onglet" w/r à la définition historique d'un "tab".
Autres que que, quel que soit votre groupe aime. C'est comme le chocolat vs vanille.
Un moyen facile de passer est d'utiliser un éditeur qui a onglet et de l'espace-support des onglets. Convertir tous vos espace-onglets de l'onglet, définissez la taille de la tabulation à quatre, puis de les convertir en menant des onglets en arrière dans l'espace-onglets.
Assez facile à faire avec un script python aussi. Juste compter tous les espaces de tête, puis ajouter le même montant au début de la ligne et d'écrire à revenir.
La PEP n'est pas le patron de vous. Si c'est déjà systématiquement 2-l'espace en retrait, il n'y a pas de raison de changer tout votre code pour se conformer à elle. Vous pourriez suivre ce qu'il va de l'avant, si vous pensez vraiment que c'est vital, mais, franchement, je n'en ai pas. Vous êtes mieux d'aller avec ce que la convention prévoit que vous (et vos collègues de travail) le plus de confort à la fois en lecture et en écriture.
Tout bon éditeur (emacs, vim) utilisera tout ce non-sens pour vous. Il fonctionnera tout aussi bien avec des espaces ou des tabulations, et il peut être configuré pour utiliser un nombre quelconque d'espaces (ou un nombre quelconque de l'espace-largeur d'un caractère de tabulation). Il peut également convertir entre les différents formats sans trop de difficultés (voir la
:retab
commande vim).Si vous essayez de convertir le format source en vrac, je vous recommande de prendre un coup d'oeil à la tiret utilitaire.
Cela dit, je ne peux pas résister à répondre à l'autre question... Ma préférence a toujours été pour les onglets, car il contourne l'ensemble de la question et tout le monde peut voir le code source avec les largeurs de définir comme ils l'entendent. C'est aussi beaucoup moins de frappe lorsque vous travaillez dans les éditeurs qui ne sont pas utile de le convertir. Aussi loin que 2 vs 4 espaces, c'est purement cosmétique.
Aussi l'une des raisons est: quand vous avez une ligne longue (plus de 80 symboles) et que vous souhaitez le couper en 2, vous avez seulement 1 espace de retrait, qui est un peu déroutant:
Si vous êtes le seul codeur de travail de votre fichier source, et il n'y a pas de normes de codification que d'appliquer un style particulier, utilisez ce que vous sentez à l'aise avec. Personnellement (et en ligne avec notre norme de codage), j'ai utiliser des onglets de sorte que celui qui regarde le code peut utiliser leur propre préférence.
De faire un changement, vous avez simplement besoin de changer tout début-de-ligne des espaces pour ceux qui sont deux fois plus grande. Il y a beaucoup de façons de le faire; dans l'éditeur de texte Vim, je pense à deux: premièrement,
C'est une simple expression régulière qui recherche un ou de plusieurs paires d'espaces en début de ligne, et les remplace par deux fois autant de cases qu'il a été trouvé. Il peut être étendu à faire tous les fichiers par l'ouverture de vim avec:
(ou l'équivalent), suivi (non testé):
Sinon:
Bien sûr, de nombreux autres outils offrent des fonctionnalités similaires: je serais surpris si quelque chose comme
sed
,awk
,perl
oupython
ne pouvais pas faire cela très facilement.Identation et générales style de codage normes varient d'une langue à langue, un projet à l'autre. Il y a une raison pour adopter un style de codage standard: alors que le code uniforme, peu importe qui l'a écrit. Qui améliore la lisibilité dans le projet, et, pour le dire crûment, il a l'air mieux.
Il y a une raison qui n'est pas valide lors de l'adoption d'un style de codage standard: parce que vous les aimez. Les normes de codage existe précisément parce que les personnes les préférences varient, et si on les laisse à leurs propres, le chaos s'ensuivra, au détriment de tous.
Si vous écrivez du code pour vous-même seul, ce qui ne sera jamais lu, allez-y et écrivez ce que vous voulez. Sinon, suivant la norme acceptée de votre communauté rendra votre code beaucoup plus agréable pour tout le monde les yeux. Et rappelez-vous aussi que si vous décidez de contribuer code à une communauté dans l'avenir, vous aurez un temps plus facile si vous êtes habitué à leur style de codage déjà.
Comme pour le changement de la taille de la tabulation, il y a de nombreux code source des formateurs qui soutien Python, et la plupart du programmeur éditeurs et Ide ont également cette capacité. Vous avez probablement déjà, c'est juste une question de consultation de la documentation de l'éditeur que vous utilisez.
L'une des raisons est que si vous utilisez moins d'espaces pour l'indentation, vous serez en mesure de nid plus consolidés (puisque la longueur de la ligne est normalement limitée à 80).
Maintenant, je suis sûr que certaines personnes sont toujours en désaccord sur la façon dont de nombreux imbriquée des constructions doit être au maximum.
Il est plus facile d'identifier visuellement long imbriquée des blocs de code avec 4 espaces. Permet de gagner du temps lors du débogage.
Si vous voulez écrire du code python avec d'autres programmeurs, il devient un problème si vous utilisez un autre renfoncement comme eux.
La plupart de Python pour les programmeurs ont tendance à utiliser 4-l'espace d'insertion.
à l'aide de 4 places ou 2 places est entièrement à vous. 4 espaces est juste une convention. Ce qui est le plus important, ne pas mélanger les tabulations et des espaces. Utiliser la barre d'espace