Якщо це для дослідження, щоб побачити, що відбувається, я рекомендую подивитися на IPython . Це додає різні ярлики для отримання документації на об'єкти, властивостей і навіть вихідного коду. Наприклад, додавання "?" функції дасть допомогу для об'єкта (фактично, ярлик для "help (obj)", коли використовується два? 's ("func??
") буде відображено вихідний код, якщо він доступний.
Також є маса додаткових зручностей, таких як заповнення вкладок, досить друк результатів, історія результатів тощо, що робить його дуже зручним для такого роду дослідницьких програмувань.
Для більш програмного використання інтроспекції, основні вбудовані команди люблять dir()
, vars()
, і getattr
т.д. буде корисно, але це добре стоїть вашого часу , щоб перевірити інспектувати модуль. Щоб отримати джерело функції, використовуйте, inspect.getsource
наприклад, " " застосувавши його до себе:
>>> 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
також часто корисний, якщо ви маєте справу з обгортанням або маніпулюванням функціями, оскільки він дасть імена та значення за замовчуванням параметрів функції.