callable to disappear?

Antoon Pardon apardon at forel.vub.ac.be
Wed Aug 23 10:34:04 EDT 2006


I have been reading http://www.python.org/dev/peps/pep-3100/
en there is written:

  To be removed:
     ...

     callable(): just call the object and catch the exception
    
     ...

But that doesn't seem to be a generally available option.
The place where you want to check if something is callable
doens't need to be the place where you actually want to call
it. Removing callable will mean that you can't check whether
or not something is callable without incurring the side-effects
of calling it.

I also think code will become more ugly

How do you suggest I would code the following:

    if callable(func):
        for i, el in lst:
            lst[i] = func(el)
	    othercode()


I can code as follows:

    try:
        for i, el in lst:
	    lst[i] = func(el)
	    othercode()
    except TypeError:
        pass


But this has the problem that othercode could throw a TypeError:

So it seems I would need at least two try statements

    try:
        for i, el in lst:
	    try:
	        lst[i] = func(el)
	    except TypeError
	        raise LoopBreak
	othercode()
    except LoopBreak:
        pass

And this still has problems because the TypeError could be
raised because lst is an unsubscriptable object.


Is there a chance this will be reconsidered?

-- 
Antoon Pardon



More information about the Python-list mailing list