Touche. I think what I was trying to argue is that I probably wouldn't have written it using function overloading, but I would have liked to write the if-test using has_ability(to_addrs, String) instead of isinstance(to_addrs, basestring). (The fact that I even wrote basestring suggests that I was feeling a *little* guilty about the isinstance() call. :-)
I also believe that a has_ability() test applies to places where function overloading doesn't, e.g. when the object that could be one of two kinds is not directly an argument but retrieved from a container or returned by some function. Having to introduce an overloaded helper just to avoid a single has_ability() call is a lot of distraction. On 11/22/06, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > At 03:19 PM 11/22/2006 -0800, Guido van Rossum wrote: > >I consider it a waste of time since the if-version works and there's > >no reason for it to be extensible. > > But if that's true, then there's no reason for it to use interfaces, > either, is there? :) It seems like a double standard to say, "well, > sometimes you have quick-and-dirty code that doesn't need extensibility", > and then later complain that it should be able to check for an interface, > instead of using either a concrete type or an overload or generic. > > That is, I don't think you can use the quick'n'dirty case simultaneously as > an argument against overloads and *for* interfaces. :) > > -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
