# 6.3 The `dir()` function

The built-in function `dir()` is used to find out which names a module defines. It returns a sorted list of strings:

    >>> import fibo, sys
    >>> dir(fibo)
    ['__name__', 'fib', 'fib2']
    >>> dir(sys)
    ['__name__', 'argv', 'builtin_module_names', 'copyright', 'exit',
    'maxint', 'modules', 'path', 'ps1', 'ps2', 'setprofile', 'settrace',
    'stderr', 'stdin', 'stdout', 'version']
    >>>

Without arguments, `dir()` lists the names you have defined currently:

    >>> a = [1, 2, 3, 4, 5]
    >>> import fibo, sys
    >>> fib = fibo.fib
    >>> dir()
    ['__name__', 'a', 'fib', 'fibo', 'sys']
    >>>

Note that it lists all types of names: variables, modules, functions, etc.

`dir()` does not list the names of built-in functions and variables. If you want a list of those, they are defined in the standard module `__builtin__`:

    >>> import __builtin__
    >>> dir(__builtin__)
    ['AccessError', 'AttributeError', 'ConflictError', 'EOFError', 'IOError',
    'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt',
    'MemoryError', 'NameError', 'None', 'OverflowError', 'RuntimeError',
    'SyntaxError', 'SystemError', 'SystemExit', 'TypeError', 'ValueError',
    'ZeroDivisionError', '__name__', 'abs', 'apply', 'chr', 'cmp', 'coerce',
    'compile', 'dir', 'divmod', 'eval', 'execfile', 'filter', 'float',
    'getattr', 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'len', 'long',
    'map', 'max', 'min', 'oct', 'open', 'ord', 'pow', 'range', 'raw_input',
    'reduce', 'reload', 'repr', 'round', 'setattr', 'str', 'type', 'xrange']
    >>>