PEP 666 – Ablehnung dummer Einrückungen
- Autor:
- Laura Creighton <lac at strakt.com>
- Status:
- Abgelehnt
- Typ:
- Standards Track
- Erstellt:
- 03-Dez-2001
- Python-Version:
- 2.2
- Post-History:
- 05-Dez-2001
Inhaltsverzeichnis
Zusammenfassung
Jeder stimmt zu, dass das Mischen von Tabs und Leerzeichen eine schlechte Idee ist. Manche Leute wollen mehr als das. Ich schlage vor, dass wir Leuten erlauben, jedes gewünschte Python-Verhalten zu definieren, damit es nur so läuft, wie sie es mögen, und nicht so, wie sie es nicht mögen. Dies werden wir mit einem Kommandozeilenschalter tun. Programme, die nicht so formatiert sind, wie der Programmierer es wünscht, lösen eine IndentationError aus.
python -TNoneweigert sich zu laufen, wenn Tabs vorhanden sind.python -Tnweigert sich zu laufen, wenn Tabs nicht genaunLeerzeichen sindpython -TOnlyweigert sich zu laufen, wenn Blöcke mit etwas anderem als Tabs eingerückt sind
Leute, die Tabs und Leerzeichen mischen, werden natürlich feststellen, dass ihre Programme nicht laufen. Ach, wir haben noch keinen Weg gefunden, ihnen einen elektrischen Schlag zu verpassen, wie von einem Viehtreiber aus der Ferne. (Obwohl, wenn jemand einen Weg findet, dies zu tun, füge ich diese Option gerne der PEP hinzu.)
Begründung
Python-list@python.org (auch bekannt als comp.lang.python) ist periodisch von Diskussionen über Tabs und Leerzeichen durchflutet. Dies ist unvermeidlich, da die Einrückung in Python syntaktisch bedeutsam ist. Dies hat noch nie etwas gelöst und macht nur verschiedene Leute frustriert und wütend. Schließlich beginnen sie, unhöfliche Dinge zueinander zu sagen, was für uns alle traurig ist. Und es ist auch traurig, dass sie ihre wertvolle Zeit verschwenden, die sie mit der Erstellung von etwas mit Python verbringen könnten. Darüber hinaus ist dies für die Python-Community als Ganzes, aus Sicht der Öffentlichkeitsarbeit, sehr unglücklich. Die Leute, die nicht über Tabs und Leerzeichen posten, sind (wenig überraschend) unsichtbar, während die Leute, die posten, uns den Rest von uns etwas töricht aussehen lassen.
Das Problem ist, dass es keine höfliche Art gibt zu sagen: „Hören Sie auf, Ihre wertvolle Zeit und meine zu verschwenden.“ Leute, die bereits mitten in einem Flammenkrieg stecken, sind nicht gut darauf eingestellt, zu glauben, dass Sie aus Mitgefühl für sie handeln, und bestehen zu Recht darauf, dass ihre eigene Zeit ihnen gehört, um damit zu tun, was sie wollen. Sie stecken wie Fliegen im Sirup in diesem elenden Streit fest, und es liegt auf der Hand, dass sie sich nicht lösen können, sonst hätten sie es bereits getan.
Aber heute musste ich Zeit damit verbringen, meine Tastatur zu reinigen, weil die 'n'-Taste klemmt. Daher bin ich, zusätzlich zum Mitgefühl für diese Leute, ziemlich verärgert. Ich denke, wenn ich diese PEP mache, können wir Guido bitten, sie schnell abzulehnen, und dann, wenn diese Diskussion wieder beginnt, können wir sagen: „Guido ändert die Dinge nicht, um den Tab-Hassern oder den Nur-Tabbern entgegenzukommen, also ist diese Unterhaltung Zeitverschwendung.“ Dann kann jeder still glauben, dass a) sie Recht haben und b) andere Leute Narren sind und c) sie sich unbestreitbar glücklich schätzen können, kein Labor mit Idioten teilen zu müssen (was die Streithähne jetzt tun könnten, aber anscheinend vergessen haben).
Und python-list kann sich wieder damit beschäftigen, ob es zu selbstgefällig ist, anstatt ob es für Neulinge zu feindselig ist. Vielleicht könnte sich jemand die Zeit nehmen, mir zu erklären, was der Unterschied zwischen __getattr__ und __getattribute__ in Nicht-Classic-Klassen in 2.2 ist, eine Frage, die ich töricht mitten im aktuellen Tab-Thread gepostet habe. Ich möchte die Antwort auf diese Frage wissen [1].
Dieser Vorschlag wird, wenn er angenommen wird, wahrscheinlich eine Menge Arbeit für jemanden bedeuten. Aber da ich nicht will, dass er angenommen wird, ist es mir egal.
Referenzen
Urheberrecht
Dieses Dokument wurde gemeinfrei erklärt.
Quelle: https://github.com/python/peps/blob/main/peps/pep-0666.rst
Zuletzt geändert: 2025-02-01 08:55:40 GMT