Cristina Yenyxe González García wrote:
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
2008/11/12 Joe Strout <joe@strout.net >:
>
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.
>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?
>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.
attribute guaranteed to not be null, "assert ob.name" is equivalent to
"assert hasattr(ob, 'name')".
tjr
Comment