This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.
If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).
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.
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).
Like getattr, but with a few extra sanity checks:
If obj is a class, ignore everything except class methods
Check if obj is a proxy that claims to have all attributes
Catch attribute access failing with any exception
Check that the attribute is a callable object
Returns the method or None.