[Python-ideas] Bring back callable()

Antoine Pitrou solipsis at pitrou.net
Wed Nov 24 00:01:04 CET 2010


Python 3 has removed callable() under the justification that's it's not
very useful and duck typing (EAFP) should be used instead. However,
it has since been felt by many people that it was an annoying loss;
there are situations where you truly want to know whether something is a
callable without actually calling it (for example when writing
sophisticated decorators, or simply when you want to inform the user
of an API misuse).

The substitute of writing `isinstance(x, collections.Callable)` is
not good, 1) because it's wordier 2) because collections is really not
an intuitive place where to look for a Callable ABC.

So, I would advocate bringing back the callable() builtin, which was
easy to use, helpful and semantically sane.



More information about the Python-ideas mailing list