George Sakkis george.sakkis at
Wed Nov 12 21:04:21 CET 2008

On Nov 12, 1:35 pm, Terry Reedy <tjre... at> wrote:
> Cristina Yenyxe González García wrote:
> > 2008/11/12 Joe Strout <j... at>:
> >> 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" is equivalent to
> "assert hasattr(ob, 'name')".

As you just showed they're not; one raises AttributeError and the
other AssertionError. Not that it matters much but these are typically
reported differently by testing frameworks.


More information about the Python-list mailing list