duck-type-checking?

J Kenneth King james at agentultra.com
Wed Nov 12 16:21:54 CET 2008


Joe Strout <joe at strout.net> writes:

> Let me preface this by saying that I think I "get" the concept of
> duck- 
> typing.
>
> However, I still want to sprinkle my code with assertions that, for
> example, my parameters are what they're supposed to be -- too often I
> mistakenly pass in something I didn't intend, and when that happens, I
> want the code to fail as early as possible, so I have the shortest
> possible path to track down the real bug.  Also, a sufficiently clever
> IDE could use my assertions to know the type of my identifiers, and so
> support me better with autocompletion and method tips.
>
> So I need functions to assert that a given identifier quacks like a
> string, or a number, or a sequence, or a mutable sequence, or a
> certain class, or so on.  (On the class check: I know about
> isinstance, but that's contrary to duck-typing -- what I would want
> that check to do instead is verify that whatever object I have, it has
> the same public (non-underscore) methods as the class I'm claiming.)
>
> Are there any standard methods or idioms for doing that?
>
> Thanks,
> - Joe

I generally use the 'assert' keyword when I'm in a rush otherwise unit
tests generally catch this kind of thing.



More information about the Python-list mailing list