On 9/21/17, Steve D'Aprano <steve+pyt...@pearwood.info> wrote: > In the iPython interactive interpreter, obj? prints information about the > given > object. For example: > > > In [11]: None? > Type: NoneType > Base Class: <type 'NoneType'> > String Form:None > Namespace: Python builtin > Docstring: <no docstring> > > > Does anyone know that the Namespace field is supposed to show? I can't get > it to > display anything except either "Python builtin" or "Interactive".
I discovered that there are 3 default namespaces -> https://github.com/ipython/ipython/blob/79921f6fe380f57cf353d76615e4fd8472c83118/IPython/core/interactiveshell.py#L1405 But you could somehow change or add other namespaces (maybe ipdb could add local namespace to evaluate local variables). You could check thist code: import IPython ip = IPython.core.getipython.get_ipython() print(ip.user_ns) # this is in 'Interactive' namespace print(ip.user_global_ns) # this is in 'Interactive (global)' namespace # next line show how somewhat somewhere could change namespace where object names are searched ip._inspect("pinfo", "None", [("my namespace", {"None":None})]) -- https://mail.python.org/mailman/listinfo/python-list