On 10/25/05, Nick Coghlan <[EMAIL PROTECTED]> wrote: > Maybe there's a design principle in there somewhere: > > Failed duck-typing -> AttributeError (or TypeError for complex checks) > Failed instance or subtype check -> TypeError
Doesn't convince me. If there are principles at work here (and not just coincidences), they are (a) don't lightly replace an exception by another, and (b) don't raise AttributeError; the getattr operation raise it for you. (a) says that we should let the AttributeError bubble up in the case of the with-statement; (b) explains why you see TypeError when a slot isn't filled. > Most of the functions in abstract.c handle complex protocols, so a simple > attribute error wouldn't convey the necessary meaning. The context protocol, > on the other hand, is fairly simple, and an AttributeError tells you > everything you really need to know. That's what I've been saying all the time. :-) -- --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