Jika ini untuk eksplorasi untuk melihat apa yang terjadi, saya akan merekomendasikan melihat IPython . Ini menambahkan berbagai cara pintas untuk mendapatkan dokumentasi objek, properti, dan bahkan kode sumber. Misalnya menambahkan "?" untuk suatu fungsi akan memberikan bantuan untuk objek (secara efektif pintas untuk "help (obj)", sedangkan menggunakan dua? (( func??
")) akan menampilkan kode sumber jika tersedia.
Ada juga banyak kenyamanan tambahan, seperti penyelesaian tab, pencetakan hasil yang cantik, riwayat hasil dll. Yang membuatnya sangat berguna untuk pemrograman penjelajahan semacam ini.
Untuk penggunaan lebih program introspeksi, builtin dasar seperti dir()
, vars()
, getattr
dll akan berguna, tetapi juga bernilai waktu Anda untuk memeriksa memeriksa modul. Untuk mengambil sumber suatu fungsi, gunakan " inspect.getsource
" mis., Terapkan pada dirinya sendiri:
>>> 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
juga sering berguna jika Anda berurusan dengan fungsi pembungkus atau manipulasi, karena akan memberikan nama dan nilai default dari parameter fungsi.