__getattr__ for global namespace?
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Thu May 4 17:56:58 EDT 2006
Harold Fellermann a écrit :
> Hi,
>
> I am writing an application that initializes the global namespace, and
> afterwards, leaves the user with the python prompt. Now, I want to
> catch NameErrors in user input like e.g.
>
>
>>>>some_name
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> NameError: name 'some_name' is not defined
>
> For classes, there are the __getattr__ and __getattribute__ functions.
> I wonder if there is some related function for (failed) global
> attribute
> lookup that is invoked with name as its argument instead.
>
> I consulted the docs, but could not find anything. Any ideas?
http://docs.python.org/lib/module-sys.html
"""
excepthook( type, value, traceback)
This function prints out a given traceback and exception to sys.stderr.
When an exception is raised and uncaught, the interpreter calls
sys.excepthook with three arguments, the exception class, exception
instance, and a traceback object. In an interactive session this happens
just before control is returned to the prompt; in a Python program this
happens just before the program exits. The handling of such top-level
exceptions can be customized by assigning another three-argument
function to sys.excepthook.
"""
>>> import sys
>>> def myhook(type, value, tb):
... print "got ", type, value, tb
...
...
>>> sys.excepthook = myhook
>>> toto
got exceptions.NameError name 'toto' is not defined <traceback object
at 0x40416694>
>>>
HTH
More information about the Python-list
mailing list