Python Koans ist eine Portierung von Edgecases „Ruby Koans“, die unter http://rubykoans.com/ zu finden ist.
Python Koans ist ein interaktives Tutorial zum Erlernen der Programmiersprache Python durch Bestehen von Tests.
Die meisten Tests werden durch Ausfüllen der fehlenden Teile von Assertion-Funktionen behoben . Z.B:
self . assertEqual ( __ , 1 + 2 )
Dies kann durch Ersetzen des __-Teils durch den entsprechenden Code behoben werden:
self . assertEqual ( 3 , 1 + 2 )
Gelegentlich werden Sie feststellen, dass Tests nicht bestanden werden, die bereits ausgefüllt wurden. In diesen Fällen müssen Sie die Implementierung von Code abschließen, um fortzufahren. Beispielsweise gibt es eine Übung zum Schreiben von Code, der Ihnen sagt, ob ein Dreieck gleichseitig, gleichschenklig oder ungleichseitig ist.
Es ist nicht nur eine großartige Möglichkeit, etwas Python zu lernen, sondern auch eine gute Möglichkeit, einen Eindruck von Test Driven Development (TDD) zu bekommen.
Python Koans ist auf GitHub verfügbar:
Sie können mit Git klonen oder die Quelle als zip/gz/bz2 herunterladen.
Neben dem Herunterladen oder Ausprobieren der neuesten Version von Python Koans müssen Sie auch den Python-Interpreter installieren.
Zum jetzigen Zeitpunkt unterstützen wir Python 3. Die Richtlinie besteht darin, zu versuchen, mit der neuesten Produktionsversion auf dem neuesten Stand zu bleiben.
Sie sollten mit neueren Python-Versionen arbeiten können, ältere Versionen werden Ihnen jedoch wahrscheinlich Probleme bereiten.
Sie können Python hier herunterladen:
Stellen Sie nach der Installation von Python sicher, dass sich der Ordner mit der ausführbaren Python-Datei im Systempfad befindet. Mit anderen Worten: Sie müssen Python über eine Befehlskonsole ausführen können. Es wird entweder python3
oder für Windows python.exe
sein.
Wenn Sie Probleme haben, kann Folgendes hilfreich sein:
Windows-Benutzer möchten möglicherweise auch die Zeile in der Batchdatei run.bat
aktualisieren, um den Python-Pfad festzulegen:
SET PYTHON_PATH=C:Python39
Jake Hebbert hat einige Screencasts erstellt, die hier verfügbar sind:
https://www.youtube.com/watch?v=e2WXgXEjbHY&list=PL5Up_u-XkWgNcunP_UrTJG_3EXgbK2BQJ&index=1
Oder wenn Sie lieber lesen möchten:
Führen Sie an einem *nix-Terminal oder einer Windows-Eingabeaufforderung Folgendes aus:
.. Codeblock:: sh
Python contemplate_koans.py
oder:
python3 contemplate_koans.py
In meinem Fall verwende ich Python 3 mit Windows, also starte ich meine Befehls-Shell (cmd.exe) und führe Folgendes aus:
Offenbar ist ein Test fehlgeschlagen:
AssertionError: False ist nicht True
Es sagt mir auch genau, wo das Problem liegt, es ist eine Behauptung in Zeile 12 von .\koans\about_asserts.py
. Dies ist ganz einfach: Ändern Sie einfach False
in True
damit der Test erfolgreich ist.
Früher oder später werden Sie wahrscheinlich auf Tests stoßen, bei denen Sie nicht sicher sind, wie hoch der erwartete Wert sein sollte. Zum Beispiel:
class Dog :
pass
def test_objects_are_objects ( self ):
fido = self . Dog ()
self . assertEqual ( __ , isinstance ( fido , object ))
Hier kann die Python-Befehlszeile nützlich sein. In diesem Fall kann ich die Befehlszeile starten, das Szenario neu erstellen und Abfragen ausführen:
Mit Sniffer können Sie die Tests kontinuierlich ausführen. Wenn Sie Dateien im Koans-Verzeichnis ändern, werden die Tests erneut ausgeführt.
Um dies einzurichten, müssen Sie Sniffer installieren:
python3 -m pip install sniffer
Abhängig von Ihrem System sollten Sie auch eine dieser Bibliotheken ausführen. Dadurch wird der Sniffer automatisch ausgelöst, wenn sich eine Datei ändert. Andernfalls muss der Sniffer abfragen, ob sich die Dateien geändert haben.
Unter Linux:
python3 -m pip install pyinotify
Unter Windows:
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
Auf macOS:
python3 -m pip install MacFSEvents
Sobald es eingerichtet ist, führen Sie einfach Folgendes aus:
sniffer
Ändern Sie einfach eine der Koans-Dateien und Sie werden sehen, dass die Tests automatisch ausgelöst werden. Sniffer wird von scent.py
gesteuert.
Zitieren der Ruby Koans-Anweisungen:
„In der testgetriebenen Entwicklung lautete das Mantra schon immer: Rot, Grün, Refactor. Schreiben Sie einen fehlgeschlagenen Test und führen Sie ihn aus (Rot), sorgen Sie dafür, dass der Test besteht (Grün), und refaktorisieren Sie ihn dann (das heißt, schauen Sie sich den Code an und sehen Sie, ob …). Sie können es noch besser machen. In diesem Fall müssen Sie das Koan ausführen und sehen, dass es fehlschlägt (rot), den Test bestehen lassen (grün) und sich dann einen Moment Zeit nehmen und über den Test nachdenken, um zu sehen, was er Ihnen beibringt und den Code verbessern, um seine Absicht besser zu kommunizieren (Refaktor).“
Es gibt zahlreiche andere großartige Koan-Projekte für verschiedene Sprachen und Frameworks. Die meisten davon sind auf GitHub zu finden. Außerdem gibt es auf Bitbucket eine kleine Koans-Aktivität.
Übersetzungen sind jederzeit willkommen! Fühlen Sie sich frei, eine zu dieser README-Datei hinzuzufügen, wenn Sie gerade an einer arbeiten:
https://github.com/mswell/python_koans_br
Vielen Dank an Jim Weirich und Joe O'Brien für die ursprünglichen Ruby Koans, auf denen die Python Koans basieren! Auch die Ruby Koans wiederum nehmen Anleihen bei Metakoans, daher geht der Dank auch an Ara Howard dafür!
Vielen Dank auch an alle, die zu Python Koans beigetragen haben! Ich hatte einen großen Vorsprung, als ich eine Codebasis übernahm, die von den kombinierten Mikes von FPIP initiiert wurde. Hier ist ein kleiner Plug für ihren sehr coolen Python-Podcast:
Ein großer Dank geht auch an Mike Pirnat @pirnat und Kevin Chase @kjc, die zu verschiedenen Zeiten als Co-Betreuer mitgeholfen haben