[Chicago] duck typing to handle a string or iterable of strings
Martin Maney
maney at two14.net
Thu May 19 19:14:37 CEST 2011
On Thu, May 19, 2011 at 10:27:04AM -0500, Jeremy McMillan wrote:
> So I want a function or method to operate on one or more strings, ...
My first thought was what Carl suggested: foo(*args). But if the
problem is you have too many semi-competent programmers and must
accomodate their lack of attention to detail I suppose this won't
appeal to you either. And I'll bet it's much too late to give them a
simpler interface such as foo(one_string) and foo_many(list_of_strings).
> The whole point of duck-typing is to be as lenient as possible with
> subclasses and workalike objects. Theoretically, it would work pretty
> well to use any of those 41 methods and attributes, but which one is
> optimal depends on convention.
Nope. Duck typing means you only care about the methods or attributes
that you need; examining the type, directly or by sniffing out other
methods as you seem to want to do, is not ducky. ;-/
Duck-typing means you test, very possibly by just doing it, exactly the
methods or attributes you need. Pre-testing even for one or more of
these is rare; the Pythonic idiom is that it's easier to seek
forgiveness (catch an exception) than get permission (viz., if
getattr(x, 'foo', None): bar(x.foo) ).
--
The vulnerabilities will come, a couple of them a week, for years and
years...until people stop looking for them. Waiting six months isn't
going to make this OS [Windows XP] safer. -- Bruce Schneier
More information about the Chicago
mailing list