La réponse à la question est: PEP-8 veut faire une recommandation et a décidé que puisque les espaces sont plus populaires, il recommandera fortement les espaces sur les onglets.
Remarques sur PEP-8
PEP-8 dit «Utilisez 4 espaces par niveau d'indentation».
Il est clair que c'est la recommandation standard.
"Pour un code vraiment ancien que vous ne voulez pas gâcher, vous pouvez continuer à utiliser des onglets à 8 espaces."
Il est clair qu'il existe CERTAINES circonstances dans lesquelles les onglets peuvent être utilisés.
«Ne mélangez jamais les onglets et les espaces.»
Il s'agit d'une interdiction claire de mélanger - je pense que nous sommes tous d'accord là-dessus. Python peut détecter cela et s'étouffe souvent. L'utilisation de l'argument -tt en fait une erreur explicite.
«Le moyen le plus courant d'indenter Python est d'utiliser uniquement des espaces. La deuxième méthode la plus populaire consiste à utiliser uniquement les onglets.
Cela indique clairement que les deux sont utilisés. Pour être très clair: vous ne devez toujours jamais mélanger les espaces et les tabulations dans le même fichier.
"Pour les nouveaux projets, les espaces uniquement sont fortement recommandés par rapport aux onglets."
C'est une recommandation claire et forte, mais pas une interdiction des onglets.
Je ne trouve pas de bonne réponse à ma propre question dans PEP-8. J'utilise des onglets, que j'ai utilisés historiquement dans d'autres langues. Python accepte la source avec l'utilisation exclusive des onglets. C'est assez bien pour moi.
Je pensais que j'allais essayer de travailler avec les espaces. Dans mon éditeur, j'ai configuré un type de fichier pour utiliser exclusivement des espaces et il insère donc 4 espaces si j'appuie sur tabulation. Si j'appuie trop souvent sur la tabulation, je dois supprimer les espaces! Arrgh! Quatre fois plus de suppressions que d'onglets! Mon éditeur ne peut pas dire que j'utilise 4 espaces pour les retraits (bien qu'un éditeur puisse le faire) et insiste évidemment pour supprimer les espaces un à la fois.
Ne pourrait-on pas dire à Python de considérer les tabulations comme des espaces n lors de sa lecture des indentations? Si nous pouvions nous mettre d'accord sur 4 espaces par indentation et 4 espaces par tabulation et permettre à Python d'accepter cela, alors il n'y aurait aucun problème.
Nous devons trouver des solutions gagnant-gagnant aux problèmes.