So formatieren Sie Ihren Python-Code automatisch mit Schwarz

Das Schreiben von Python-Code ist eine Sache und das Schreiben des Codes in einem guten Format eine andere Sache. Junior-Programmierer konzentrieren sich oft darauf, sicherzustellen, dass ihr Code funktioniert, und vergessen, den Code auf dem Weg richtig zu formatieren.

Wenn Sie ein kleines Programm (mit 1000 Codezeilen) schreiben, können Sie wahrscheinlich davonkommen, ohne Ihren Code zu formatieren.

Aber wenn Programme immer komplexer werden, werden sie immer schwieriger zu verstehen. Irgendwann (ca. 15.000 Codezeilen) wird es schwieriger, den von Ihnen selbst geschriebenen Code zu verstehen.

Der Unterschied zwischen der Arbeit an gut formatiertem Code und der Arbeit an schlecht formatiertem Code ist wie der Unterschied zwischen dem Leben in einem Palast und dem Leben in einem schmutzigen Haus.

Warum das Formatieren Ihres Python-Codes wichtig ist

Lesbarkeit

Durch das Formatieren Ihres Codes können Sie Ihren Code effizient lesen . Es sieht besser organisiert aus, und wenn sich jemand Ihren Code ansieht, bekommt er einen guten Eindruck.

Es wird Ihnen bei Ihren Codierungsinterviews helfen

Wenn Sie sich in einem Coding-Interview befinden, ist es den Interviewern manchmal wichtig, ob Sie Ihren Code richtig formatieren. Wenn Sie diese Formatierung vergessen, verlieren Sie möglicherweise Ihre Jobaussichten, nur aufgrund Ihres schlecht formatierten Codes.

Teamunterstützung

Das Formatieren Ihres Codes wird wichtiger, wenn Sie in einem Team arbeiten . Wahrscheinlich arbeiten mehrere Personen an demselben Softwareprojekt, und der von Ihnen geschriebene Code muss von Ihren Teamkollegen verstanden werden. Andernfalls wird es schwieriger, zusammenzuarbeiten.

Es macht es einfach, Fehler zu erkennen

Schlecht formatierter Code kann es wirklich sehr, sehr schwierig machen, Fehler zu erkennen oder sogar an einem Programm zu arbeiten. Es ist auch wirklich schrecklich anzusehen. Es ist eine Beleidigung für deine Augen.

Pylint und Flake8

Die meisten Python-Entwickler verwenden gerne Pylint oder Flake8, um ihren Code auf Fehler und Styleguides zu überprüfen.

Pylint ist ein Tool, das in Python nach Fehlern sucht . Es versucht, einen Codierungsstandard durchzusetzen und sucht nach Codegerüchen. Es kann auch nach bestimmten Typfehlern suchen, Vorschläge zur Umgestaltung bestimmter Blöcke empfehlen und Details zur Komplexität des Codes bereitstellen.

Flake8 ist eine Python-Bibliothek, die PyFlakes , Pycodestyle und Ned Batchelders McCabe-Skript umschließt . Es ist ein großartiges Toolkit zum Überprüfen Ihrer Codebasis anhand des Codierungsstils (PEP8) , Programmierfehlern wie "Bibliothek importiert, aber nicht verwendet", "Undefinierter Name" und Code, der nicht eingerückt ist.

Das Problem ist, dass diese Tools nur die Probleme melden, die sie im Quellcode identifizieren, und die Aufgabe den Python-Entwicklern überlassen, sie zu beheben!

Aber was wäre, wenn wir ein Tool hätten, mit dem das Problem gleichzeitig identifiziert und gelöst werden könnte? Schwarz ist ein Tool, mit dem Sie Fehler identifizieren und gleichzeitig Ihren Python-Code formatieren können . So werden Sie produktiver.

Einführung in Schwarz

Aus dem Projekt README:

Durch die Verwendung von Schwarz erklären Sie sich damit einverstanden, die Kontrolle über Kleinigkeiten der Handformatierung abzugeben. Im Gegenzug gibt Ihnen Schwarz Geschwindigkeit, Determinismus und Freiheit von Pycodestyle, die beim Formatieren nörgeln. Sie sparen Zeit und geistige Energie für wichtigere Angelegenheiten.

Schwarz kann Ihre gesamte Datei entsprechend dem Schwarzcodestil neu formatieren. Es hilft Ihrem Gehirn, sich auf das Problem zu konzentrieren, das Sie lösen möchten, und Lösungen zu codieren, anstatt sich von der Codestruktur und geringfügigen stilistischen Unterschieden ablenken zu lassen.

Mal sehen, wie man es benutzt.

Installieren Sie Schwarz

Schwarz kann durch Ausführen installiert werden pip install black. Zum Ausführen ist Python 3.6.0+ erforderlich. Sobald Black installiert ist, steht Ihnen in Ihrer Shell ein neues Befehlszeilenprogramm namens black zur Verfügung, und Sie können loslegen!

Um sofort mit sinnvollen Standardeinstellungen zu beginnen, wählen Sie die Python-Datei aus, die Sie formatieren möchten, und schreiben Sie dann den schwarzen Dateinamen.py in das Terminal. Dann formatiert Schwarz Ihre Python-Datei.

Jetzt werden wir sehen, was Schwarz uns helfen kann.

Formatieren Sie eine einzelne Datei

Schauen wir uns dieses einfache Beispiel an: Hier sind meine beiden Python-Funktionen in meiner Python-Datei sample_code.py.

Sie können black sample_code.pyim Terminal verwenden, um das Format zu ändern. Nach dem Ausführen von Schwarz wird die folgende Ausgabe angezeigt:

Anschließend können Sie sample_code.py öffnen, um den formatierten Python-Code anzuzeigen:

Der Python-Code ist jetzt formatiert und besser lesbar.

Mehrere Dateien formatieren

Um mehr als eine Python-Datei zu formatieren, schreiben Sie black folder_name/in das Terminal.

Drei Python-Dateien im Ordner python_with_black wurden neu formatiert.

Überprüfen von Dateien auf Formatierung

Wenn Sie nicht möchten, dass Schwarz Ihre Datei ändert, Sie aber wissen möchten, ob Schwarz der Meinung ist, dass eine Datei geändert werden sollte, können Sie einen der folgenden Befehle verwenden:

black --check .: Hiermit wird überprüft, welche Python-Datei (en) im aktuellen Ordner formatiert werden können (die Python-Datei (en) jedoch nicht geändert werden).

black --check --diff file_name.py : Dies zeigt, was mit der Datei getan werden muss, ändert die Datei jedoch nicht.

Ändern Sie die Anzahl der Zeichen pro Zeile

Beachten Sie, dass Schwarz standardmäßig 88 Zeichen für die Zeilenlänge verwendet. Sie können dies jedoch mit der Option „-l“ oder „- Zeilenlänge“ ändern.

Um beispielsweise auf 60 Zeichen zu wechseln : black -l 60 python_file.py.

Schwarz im Jupyter-Notizbuch

Für Jupyter-Notebook-Benutzer können Sie Ihren Python-Code mit dieser einfachen Erweiterung namens Jupyter Black weiterhin automatisch formatieren. Diese Erweiterung formatiert / verschönert den Code in der Codezelle eines Notebooks durch Schwarz.

Die Jupyter Black-Erweiterung bietet

  • Eine Symbolleistenschaltfläche.
  • Eine Tastenkombination zum Neuformatieren der aktuellen Codezelle (Standard: Strg-B).
  • Eine Tastenkombination zum Neuformatieren ganzer Codezellen (Standard: Strg-Umschalt-B).

Installieren Sie Jupyter Black

Stellen Sie zunächst sicher, dass Sie jupyter-contrib-nbextensions und black installiert haben, und führen Sie dann die folgenden Befehle aus.

jupyter nbextension install //github.com/drillan/jupyter-black/archive/master.zip — user

Aktivieren Sie dann die Erweiterung, indem Sie Folgendes ausführen:

jupyter nbextension enable jupyter-black-master/jupyter-black 

Jetzt können Sie Ihren Python-Code in jeder Notebook-Zelle formatieren.

Wählen Sie zuerst die Notebook-Zelle aus, in der Sie Ihren Python-Code formatieren möchten, und klicken Sie dann auf die Erweiterungsschaltfläche Schwarz.

Klicken Sie dann auf die Schaltfläche Jupyter Black:

Editor-Integration

Sie können Black in Ihre bevorzugten Editoren integrieren. Derzeit unterstützt Schwarz PyCharm / IntelliJ IDEA, Wing IDE, Vim, Visual Studio-Code, Sublime Text 3, Atom / Nuclide, Kakoune und Thonny. Befolgen Sie die Anweisungen hier, um Black in Ihren Lieblingseditor zu integrieren.

Wenn Sie mehr über Schwarz erfahren möchten, empfehle ich Ihnen, den PyCon 2019-Vortrag von Łukasz Langa zu sehen.

Wenn Sie etwas Neues gelernt haben oder diesen Artikel gerne gelesen haben, teilen Sie ihn bitte mit, damit andere ihn sehen können. Bis dahin bis zum nächsten Beitrag! Ich bin auch auf Twitter @Davis_McDavid erreichbar.