Jeśli jest to eksploracja, aby zobaczyć, co się dzieje, polecam spojrzeć na IPython . Dodaje to różne skróty w celu uzyskania dokumentacji obiektów, właściwości, a nawet kodu źródłowego. Na przykład dołączając „?” funkcja da pomoc dla obiektu (w rzeczywistości skrót do „help (obj)”, co przy użyciu dwóch? („ func??
”) wyświetli kod źródłowy, jeśli jest dostępny.
Istnieje również wiele dodatkowych udogodnień, takich jak uzupełnianie tabulatorów, ładne drukowanie wyników, historia wyników itp., Które sprawiają, że jest to bardzo przydatne w tego rodzaju programowaniu eksploracyjnym.
Dla bardziej programowego wykorzystania introspekcji, podstawowe builtins podoba dir()
, vars()
, getattr
etc będzie użyteczny, ale jest warta twojego czasu na sprawdzeniu sprawdzić moduł. Aby pobrać źródło funkcji, użyj „ inspect.getsource
” np., Stosując ją do siebie:
>>> 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
jest również często przydatny, jeśli masz do czynienia z zawijaniem lub manipulowaniem funkcjami, ponieważ poda nazwy i wartości domyślne parametrów funkcji.