Wenn es um die Erkundung geht, um zu sehen, was vor sich geht, würde ich empfehlen, sich folgende Seiten anzusehen IPython . Dadurch werden verschiedene Abkürzungen hinzugefügt, um die Dokumentation, die Eigenschaften und sogar den Quellcode eines Objekts zu erhalten. Wenn man zum Beispiel ein "?" an eine Funktion anhängt, erhält man die Hilfe für das Objekt (effektiv eine Abkürzung für "help(obj)", während die Verwendung von zwei ?'s (" func??
") zeigt den Quellcode an, wenn er verfügbar ist.
Außerdem gibt es viele zusätzliche Annehmlichkeiten, wie die Vervollständigung von Tabulatoren, hübsche Ausdrucke von Ergebnissen, eine Historie der Ergebnisse usw., die es für diese Art der explorativen Programmierung sehr praktisch machen.
Für die programmatische Nutzung der Introspektion sind die grundlegenden Buildins wie dir()
, vars()
, getattr
usw. nützlich sein, aber es lohnt sich auch, sich die prüfen Modul. Um die Quelle einer Funktion zu holen, verwenden Sie " inspect.getsource
" z.B. auf sich selbst anwenden:
>>> print inspect.getsource(inspect.getsource)
def getsource(object):
"""Return the text of the source code for an object.
The argument may be a module, class, method, function, traceback, frame,
or code object. The source code is returned as a single string. An
IOError is raised if the source code cannot be retrieved."""
lines, lnum = getsourcelines(object)
return string.join(lines, '')
inspect.getargspec
ist auch häufig nützlich, wenn Sie mit der Umhüllung oder Manipulation von Funktionen zu tun haben, da es die Namen und Standardwerte der Funktionsparameter angibt.