2016-04-21 41 views
1

Von der Kommandozeile aus habe ich eine Funktion namens go() geschrieben. Wenn es aufgerufen wird, empfängt es Eingaben, die den Benutzer nach einer Verzeichnisadresse im Format drive:\directory fragen. Keine Notwendigkeit für zusätzliche Schrägstriche oder Zitate oder r wörtliche Qualifier oder was hast du. Sobald Sie ein Verzeichnis bereitgestellt haben, listet es alle nicht versteckten Dateien und Verzeichnisse darunter auf.Ist es möglich, die inneren Aussagen einer Funktion zu untersuchen?

Ich möchte die Funktion jetzt mit einer Anweisung aktualisieren, die diesen Ort in einer Variablen speichert, so dass ich meine Hierarchie durchsuchen kann, ohne jedes Mal die vollständige Adresse anzugeben.

Leider erinnere ich mich nicht, welche Aussagen ich in die Funktion an erster Stelle gesetzt habe, um es so zu machen, wie es tut. Ich weiß, es ist einfach und ich könnte es einfach nachschlagen und mit wenig Aufwand von Grund auf neu aufbauen, aber darum geht es nicht.

Als jemand, der versucht, die Sprache zu lernen, versuche ich so oft wie möglich an der Befehlszeile zu bleiben, nur den Browser zu besuchen, wenn ich etwas Neues lernen muss. Es ist sehr umständlich, sich auf obskure Befunde zu beziehen, die mit vage zusammenhängenden Fragen verknüpft sind, um wiederzuentdecken, was ich bereits getan habe.

Also meine Frage ist, kann ich den Inhalt der Funktionen sehen, die ich geschrieben habe, und wie?

+0

uh, wenn es Code ist Sie geschrieben haben, vermutlich haben Sie, um eine Datei mit diesem Code, und Sie es nur in einem Editor öffnen .. Wenn Sie es direkt in einer Shell definieren, dann tun Sie es nicht ... Wenn Sie sich mit dem Code herumschlagen wollen, schreiben Sie ihn einfach in eine Datei und führen Sie diese Datei stattdessen aus. –

+0

Ich schreibe in die Befehlszeile, weil das Ausführen von einer Datei bewirkt, dass die Shell unmittelbar nach der Ausführung geschlossen wird. Ich weiß, ich könnte es bitten, auf eine Antwort zu warten, damit ich jede Ausgabe analysieren kann, aber im Moment habe ich keine Ausgabe, die ich analysieren möchte. Was wichtig ist, ist, dass ich Live-Interaktion mit meiner Skriptumgebung von der Befehlszeile aus haben kann, indem ich Funktionen aufruft und Anweisungen und dergleichen deklariere. IDLE ist keine Option für mich. Ich arbeite von einem Regierungscomputer und darf die Firewall-Einstellungen, die die IDLE-Unterprozesse stören, nicht ändern. – Musixauce3000

+1

@ Musixauce3000 Oder Sie könnten ein Terminal/cmd öffnen und 'python/path/to/file.py' schreiben und es wird nicht terminal;) ​​ –

Antwort

0

Leider nicht. Python hat diese Ebene der Introspektion nicht. Am besten können Sie den kompilierten Byte-Code sehen.

Die inspect Modul Details, welche Informationen zur Laufzeit verfügbar ist: https://docs.python.org/3.5/library/inspect.html

+0

Nun, das ist eine direkte solide Antwort. Aber ich werde ein bisschen Hoffnung aushalten :( – Musixauce3000