Guido van Rossum wrote:
> On 7/18/06, Greg Ewing <[EMAIL PROTECTED]> wrote:
>> Andrew Koenig wrote:
>>
>>> I am uncomfortable about exposing the implementation this way, if only
>>> because it would require fixing the equivalence between callable() and
>>> hasattr(obj, '__call__') for all time.
>> I don't see anything bad about fixing that equivalence.
>> I regard the fact that it *wasn't* fixed before as a
>> language design bug that Py3k will hopefully fix.
> 
> I seem to recall fixing it. Are there still callable objects without a
> __call__ attribute?

I don't know about __call__, but str and unicode don't have __iter__,
list, tuple and dict do:

Python 2.5b2 (r25b2:50512, Jul 20 2006, 13:27:27)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list.__iter__
<slot wrapper '__iter__' of 'list' objects>
>>> tuple.__iter__
<slot wrapper '__iter__' of 'tuple' objects>
>>> dict.__iter__
<slot wrapper '__iter__' of 'dict' objects>
>>> str.__iter__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'str' has no attribute '__iter__'
>>> unicode.__iter__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'unicode' has no attribute '__iter__'

Should that be fixed too?

Servus,
   Walter
_______________________________________________
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