duck-type-checking?

Joe Strout joe at strout.net
Wed Nov 12 10:06:31 EST 2008


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




More information about the Python-list mailing list