2010-12-14 13 views
0

Viele Tutorials empfehlen Benutzern, Tab mit der Breite von 4 zu verwenden, während 4 mit Leerzeichen nicht echte Tab-Zeichen gemacht wird. Mit dem richtigen Tab funktioniert es auch, warum empfehlen die Leute, Leerzeichen von 4 anstelle von echten Tabs zu verwenden? Ich bin ein Python Anfänger verwirrt ????Python-Registerkarten gefälscht oder echt

[UPDATE] Danke! Ich bin jetzt auf Räume von 4.en

Added Schale folgend meinen .vimrc „Python

au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 
au BufRead,BufNewFile *.py,*.pyw set expandtab 
fu Select_c_style() 
    if search('^\t', 'n', 150) 
     set shiftwidth=8 
     set noexpandtab 
    el 
     set shiftwidth=4 
     set expandtab 
    en 
endf 

Für anderen Fall:

set noexpandtab    " tabs are tabs, not spaces 
+2

mögliche Duplikate von [Tabs versus Leerzeichen in Python-Programmierung] (http://stackoverflow.com/questions/119562/tabs-versus-spaces-in-python-programming) – katrielalex

Antwort

1

Sobald Sie ein Tab-Zeichen in einer Datei zulassen, befinden Sie sich in einer Situation mit gemischten Tabs und Leerzeichen, und dann werden Sie Parsing-Fehler erhalten. Dies wird noch schlimmer, wenn mehrere Personen an einem Projekt arbeiten und ihre Abstandseinstellungen voneinander abweichen.

PEP8 empfiehlt „4 Räume“: http://www.python.org/dev/peps/pep-0008/

Und diese Empfehlung mit Erfahrung gemacht, mit den Arten von Problemen zu tun, dass das Mischen Tabs und Leerzeichen in Python bringen. Viel, viel besser, um sich den Schmerz zu ersparen und einfach 4 Leerzeichen für Ihren Python-Code zu verwenden.

+0

Ich erhalte keine Situationen mit gemischten Tabulatoren und Leerzeichen, weil mein Texteditor dies war richtig angewiesen, sie nicht zu mischen. Tabs sind nicht schwer zu verwenden, wenn man nicht-hirntote Editoren verwendet, und der ganze Punkt besteht darin, Leuten zu erlauben, "ihre Abstandseinstellungen voneinander zu unterscheiden" - den Code mit der Einrückung anzuzeigen, die ihn am besten lesbar macht für sie - ohne tatsächlich den Text zu ändern. Ich räche mit Tabs, in jeder Programmiersprache, und setze sie auf 2 Leerzeichen, weil das genau das Richtige für mich ist. Aber anscheinend ist das alles Häresie. –

+0

Ich bevorzuge einen Tabstop von 2 Leerzeichen. – MattH

2

Des Python Compiler hält die Tab-Zeichen äquivalent zu sein Einrücken von 8 Leerzeichen Sie können Registerkarten verwenden, wenn Sie möchten, aber das Mischen von Tabulatoren und Leerzeichen führt zu Fehlern bei der Fehlersuche, weshalb es ratsam ist, mit Leerzeichen zu kleben

+0

BTW, sollten Sie wahrscheinlich in die Tabnanny suchen 'Modul, wenn Sie der Meinung sind, dass Sie Probleme beim Mischen von Tabs und Leerzeichen haben könnten. –

+2

Python 3 ändert die Regeln. Das Mischen von Tabulatoren und Leerzeichen in der gleichen Einrückung ist jetzt verboten und führt zu diesem Fehler vom Interpreter: "TabError: Inkonsistente Verwendung von Tabulatoren und Leerzeichen in Einrückung" –

1

Der einzige Grund, den ich in Betracht ziehen kann, dass, wenn Sie Ihren Editor nicht eingerichtet haben, um tabstop=4 zu verwenden (sagen wir, in VIM), werden Ihre Codezeilen länger sein und es wird unbequem sein, einen solchen Code zu lesen. Die einzige Regel sollte nicht Tabs und Leerzeichen mischen, ich denke, ich habe Code gesehen, wo der einzelne Einzug vier Leerzeichen war und die doppelte Einrückung war ein Tab. Es war schrecklich.)

+0

IIRC, Visual Studio legt standardmäßig einen Einzug mit vier Leerzeichen fest, ersetzt jedoch automatisch Gruppen von 8 Feldern durch Registerkarten und zeigt sie als 8 Leerzeichen an. Vielleicht sind das nicht die Standardeinstellungen, aber ich habe eine Menge Code gesehen, der so formatiert ist. Es ist schändlich. Ich verstehe wirklich nicht, warum die richtige Verwendung von Tabs für so viele Menschen offensichtlich so schwierig ist, bis zu dem Punkt, von dem abgeraten wird. –

+0

@Karl Ich bevorzuge die Verwendung von Tabs, da jeder im Projekt seinen/ihren Editor dazu bringen kann, ihn nach Bedarf anzuzeigen (2, 4 oder die ganzen 8 Leerzeichen). – khachik

+1

Oder 3 oder 5 oder ... Ich glaube nicht, dass ich diese Leute jemals verstehen werde, aber ich werde sie nicht diskriminieren. :) –

1

Viele, wenn nicht die meisten Redakteure Führen Sie eine Inline-Konvertierung von Registerkarten in eine benutzerdefinierte Anzahl von Leerzeichen durch. Stellen Sie das auf 4 ein und Sie sind zu Hause frei. Der wahre Schmerz kommt, wenn Sie in einem Team sind, das diese Idee von 4 Räumen nicht standardisiert hat.

Verwandte Themen