On 7/22/06, Andrew Koenig <[EMAIL PROTECTED]> wrote:
> This example illustrates an important point:  Some object properties don't
> correspond directly to the presence of a particular attribute, and can't
> easily be made to do so.
>
> In other words:
>
>         Is it callable?  No problem, just check for __call__
>
>         Is it iterable?  Well, you can't quite check for __iter__ because
>         some iterable types don't have them.  Well, we can fix that problem:
>         Change those types so that they have __iter__ to signal that they
>         are iterable.
>
>         Is it hashable?  That's a tough question to answer, because you
>         have to inspect recursively all of the object's components.  So
>         you can't just test for __hash__; you have to call it.
>
> To my way of thinking, callable, iterable, and hashable are the same kind of
> concept, and I wish Python would provide a uniform way of finding out
> whether such concepts apply to an object.  That uniform way doesn't have to
> be in __builtins__, but it would be nice for it to exist.

Hm... Is a uniform API really a good idea for things that have totally
different performance characteristics? Computing hashability is about
as expensive as computing the hash...

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to