This documentation is for an old version of IPython. You can find docs for newer versions here.
A fancy version of Python’s builtin
In recent versions of Python, hasattr() only catches AttributeError. This catches all errors.
dir2(obj) → list of strings¶
Extended version of the Python builtin dir(), which does a few extra checks, and supports common objects with unusual internals that confuse dir(), such as Traits and PyCrust.
This version is guaranteed to return only a list of true strings, whereas dir() returns anything that objects inject into themselves, even if they are later not really valid for attribute access (many extension libraries have such bugs).