[Python-3000] Abilities / Interfaces
Fredrik Lundh
fredrik at pythonware.com
Thu Nov 23 00:09:41 CET 2006
Guido van Rossum wrote:
> Examples that keep recurring are things like
> the smtplib.SMTP.sendmail() method, whose second argument is either a
> string or a list of strings. The optimal way of writing this, IMO, is
> a single method that typechecks its 2nd argument. It currently uses
> "if isinstance(x, basestring)" but I'd be happier if this could be
> written as some kind of check for implementing the String interface.
> (If it's neither a string nor a list, I don't really care what
> happens, it will just raise an exception a few lines later and that's
> perfectly fine for diagnosing the problem). Rewriting this as a
> generic method (how do I even create generic methods? I'm sure it's
> easy) sounds like a total waste of time and code.
I'm not sure I see how changing
def sendmail(self, from_addr, to_addr, ...):
if isinstance(to_addr, basestring):
to_addr = [to_addr]
...
to, say
def sendmail(self, from_addr, to_addr is a string, ...): # specific
self.sendmail(from_addr, [to_addr], ...)
def sendmail(self, from_addr, to_addr, ...): # general
...
would be a *total* waste of time. but maybe I've just done too much C#
programming ;-)
</F>
More information about the Python-3000
mailing list