Introspection

  • Extremely powerful pythonic feature.
  • Features in Python that help understand other features.
  • Everything in Python is an object, and introspection is to look at this objects in memory and provide information them(attributes & methods).

help()

>>> help(sys)

dir()

>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__' [...snipped...]]

type()

>>> import sys
>>> 
>>> 
>>> type(sys)
<type 'module'>
>>> type(1)
<type 'int'>
>>> type()

doc string

>>> sys.__doc__
"This module provides access to some objects used [...snipped...]"

__builtin__

type, str, dir, help and all the rest of Python’s built−in functions are grouped into a special module called __builtin__.
Try to think of it like python interpreter calls import __builtin__ when you run a program.
Builtin methods are not keywords, their names can be over-ridden so do not use builtin method names for anything else.

>>> import __builtin__
>>> 
>>> __builtin__
<module '__builtin__' (built-in)>
>>> 
>>> dir(__builtin__)
['ArithmeticError', 'AssertionError', 'AttributeError',[..snipped..]
>>>