[Python-Dev] concerns regarding callable() method (original) (raw)
skip at pobox.com skip at pobox.com
Mon Apr 9 04:53:09 CEST 2007
- Previous message: [Python-Dev] concerns regarding callable() method
- Next message: [Python-Dev] concerns regarding callable() method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido> My point is that it's futile to use callable() -- even if it
Guido> passes, you have no assurance that you actually have a valid
Guido> callback. So why bother with it at all? It's counter to the
Guido> spirit of Python. If someone passes you a bad callback, they will
Guido> see a traceback when you call it. Then they fix their
Guido> program. That's how it's supposed to work.
There's one place where I find the traceback somewhat unhelpful. Consider calling a method of a class with incorrect arguments:
>>> class C:
... def __init__(self):
... pass
...
>>> C(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() takes exactly 1 argument (2 given)
While in this example it's clear what method wasn't called correctly, a callback called with the wrong number of arguments yields a fairly useless stack trace. I'm thinking in particular of callbacks called from C code (e.g. Gtk signal handlers). I think it would be helpful to check to see if the function being called had an "im_class" attribute. If so, then resolve the class name and include it in the TypeError message:
TypeError: C.__init__() takes exactly 1 argument (2 given)
Skip
- Previous message: [Python-Dev] concerns regarding callable() method
- Next message: [Python-Dev] concerns regarding callable() method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]