2016-08-08 94 views
0

Ich bin Anfänger für Python und Programmierung im Allgemeinen. Während ich Python lerne, bin ich daran gebunden, eine gute Angewohnheit zu entwickeln oder einer guten Praxis zu folgen. Lass mich zuerst erklären, was ich gerade mache.Was ist der Vorteil des Python-Skripts über die Befehlszeile?

Ich benutze Emacs (Prelude), um Python-Skripte auszuführen. Die Tastenkombination C-cC-c wertet den Puffer aus, der das Python-Skript enthält. Dann bekomme ich einen neuen Puffer mit einem Python-Interpreter mit >>> prompt. In dieser Umgebung sind alle in den Skripten verwendeten Variablen zugänglich. Zum Beispiel, wenn x und y im Skript definiert wurden, kann ich >>> x + y tun, um es auszuwerten.

Ich sehe viele Leute (wenn nicht die meisten) um mich herum mit der Befehlszeile, um das Python-Skript (d. H. $ python scriptname.py) auszuführen. Wenn ich dies tue, gehe ich zur Shell-Eingabeaufforderung zurück und kann nicht auf die Variablen x und y zugreifen, um x + y auszuführen. Daher war ich mir nicht sicher, welchen Vorteil das Ausführen von Python-Skripten über die Befehlszeile hat.

Sollte ich Emacs nur als Editor verwenden und Terminal (ich benutze Mac) verwenden, um das Skript auszuführen? Was ist eine bessere Praxis?

Vielen Dank!

+0

Wenn Sie wissen möchten, warum alle Leute um Sie herum die Befehlszeile verwenden, können Sie * sie * fragen, anstatt Leute, die nur ihre Motivationen erraten können. Was machst du, wenn dein Skript fertig ist? Laden Sie Emacs, um Python zu laden, um Ihr Skript auszuführen? Um was herum arbeiten die Leute um dich herum? Wissen sie, dass sie einen Dolmetscher in Emacs verwenden können? – TessellatingHeckler

+1

Sie sollten Ihre Programme in derselben Umgebung testen, in der sie ausgeführt werden. In der Produktion ist es unwahrscheinlich, dass sie von einem Editor ausgeführt werden. Während der Entwicklung ist es jedoch persönlicher Geschmack - was auch immer Sie am produktivsten macht. – cdarke

+0

Sie sagten mir, dass die Verwendung von CL die einzige Möglichkeit ist, sie zu kennen und zu bleiben. Keiner von ihnen benutzt Emacs. So konnten sie nicht vergleichen. – zcadqe

Antwort

0

Menschen verwenden verschiedene Werkzeuge für verschiedene Zwecke.

Eine wichtige Frage über die Schnittstelle in einem Programm ist wer ist der Benutzer? Sie als Programmierer verwenden den Interpreter, um ein Programm zu testen und auf Fehler zu prüfen. Häufig muss der Benutzer nicht wirklich auf die darin enthaltenen Variablen zugreifen, da sie nicht mit der Anwendung/dem Skript mit einem Interpreter interagieren. Zum Beispiel gibt es bei Python-Webanwendungen normalerweise ein main.py-Skript, um Client-HTTP-Anfragen an geeignete Handler umzuleiten. Diese Handler führen ein Python-Skript automatisch aus, wenn ein Client es anfordert. Diese Ausgabe wird dann dem Benutzer angezeigt. In Python-Webanwendungen ist es normalerweise nicht so wichtig, auf Variablen in einer Datei wie main.py zuzugreifen (es sei denn, der Entwickler versucht, einen Fehler im Programm zu beseitigen) (der Clientzugriff auf diese Variablen würde nämlich eine Sicherheit darstellen) Problem in einigen Fällen). Da Sie nur die Ausgabe eines Skripts benötigen, führen Sie diese Skriptfunktion in der Befehlszeile aus und zeigen das Ergebnis dem Client an.

Über Best Practices: wieder, hängt davon ab, was Sie tun.

Die Verwendung des Python-Interpreters für die Berechnung ist in Ordnung für kleinere Tests isolierter Funktionen, funktioniert aber nicht für größere Projekte, in denen sich mehr bewegliche Teile in einem Python-Skript befinden. Wenn Sie ein Python-Skript haben, das einige hundert Zeilen erreicht, werden Sie sich nicht wirklich an Variablennamen erinnern oder daran erinnern müssen. In diesem Fall ist es besser, das Skript in der Befehlszeile auszuführen, da Sie keinen Zugriff auf die internen Komponenten benötigen.

Sie möchten eine neue Skriptdatei erstellen, wenn Sie dieses Skript für eine einzelne Aufgabe erstellen. Zum Beispiel mit dem obigen Handler-Beispiel sind die Funktionen in main.py alle darauf ausgerichtet, HTTP-Anfragen zu bearbeiten. Für etwas wie das Definieren von x, das Definieren von y und das anschließende Hinzufügen benötigen Sie keine eigene Datei, da Sie keine Funktion erstellen, die Sie in Zukunft benötigen, und das Hinzufügen von zwei Zahlen ist eine integrierte Methode. Allerdings haben Sie eine Reihe von Funktionen, die Sie erstellt haben, die nicht in einer integrierten Methode verfügbar sind (kompliziertes Beispiel: softmax-Funktion zum Reduzieren des K-Dimensionsvektors auf einen anderen K-Dimensionsvektor, wobei jedes Element ein Wert zwischen 0 und 1 ist und alle Elemente summieren sich zu 1), die Sie in einer Skriptdatei erfassen und die Prozedur dieses Skripts später angeben möchten. In diesem Fall würden Sie Ihre eigene Skriptdatei erstellen und sie in einem anderen Python-Skript zur Ausführung angeben.