[Tutor] random.choice()
wesley chun
wescpy at gmail.com
Wed Jul 2 20:24:04 CEST 2008
> > It seems to me that Wes is saying only that all function objects are
> > callable, not that all callable objects are functions.
>
> Wesley said that function objects have a "heaping distinction" of
> being callable. Only he can say for sure what that means; I took it to
> mean that being callable is a very special property, perhaps one that
> only function objects have. I just wanted to point out that there is
> nothing really very special about that property, any more than being
> iterable or having a length or a string representation or any of the
> other properties that are implemented with special methods.
yeah, apologies for not going further to clarify... i was just
focusing on functions in my reply and could've mentioned the others
like classes, methods (regular, static, class), as well as any
instances of classes that have implemented __call__. the point i was
trying to make is that most standard Python objects *aren't* callable,
so it does seem to be magic for newbies that functions are 1st class
objects and that a mere pair of parentheses can make them execute.
on a related note, currently in Python, there is a callable() Boolean
function that returns True if the object's callable and False
otherwise. this will be removed for Python 3.x because you can just
use hasattr(obj, '__call__').
cheers,
-wesley
More information about the Tutor
mailing list