On 4/8/07, Paul Pogonyshev <[EMAIL PROTECTED]> wrote: > I have seen in PEP 3100 that callable() function is planned to be > removed in Python 3000 with this replacement: "just call the object > and catch the exception???". For one, the object (if it is > callable) can raise exception itself, so you need to somehow to > differentiate between exception raised inside its __call__ and > exception raised if object is not callable to begin with.
Why? > Additionally consider something like > > something.set_callback (x) > > Assume that set_callback() wants to check if `x' is callable at > all, to raise exception early and make error tracking easier. > Currently, you can > > assert callable (x) > > But if callable() is removed, there is no apparent replacement. Of > course, you cannot call `x' since it might have side-effects or be > slow etc. assert hasattr(x, '__call__') I note that callable() was introduced before all callable objects had a __call__ attribute. This is no longer the case, so it's not needed. > Please reconsider removal of callable() or provide an adequate > replacement. What if someone passes a callable that doesn't have the expected signature? -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com