duck-type-checking?
Terry Reedy
tjreedy at udel.edu
Wed Nov 12 13:35:23 EST 2008
Cristina Yenyxe González García wrote:
> 2008/11/12 Joe Strout <joe at strout.net>:
>> 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?
>
> You can use hasattr(object, name), with 'name' as the name of the
> public method to check. It returns True if the object responds to that
> method, False otherwise.
Too hard. For methods, which are what define duck species, and any
attribute guaranteed to not be null, "assert ob.name" is equivalent to
"assert hasattr(ob, 'name')".
tjr
More information about the Python-list
mailing list