This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ezio.melotti
Recipients docs@python, ezio.melotti, fossilet
Date 2012-11-08.23:46:28
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1352418388.79.0.681492891513.issue16437@psf.upfronthosting.co.za>
In-reply-to
Content
While this is documented for isinstance, I'm not sure it should be advertised too much, as it seems to me an implementation detail and doesn't seem too useful in practice.

This is a side-effect of the fact that
  isinstance(x, (A, B, ...))
is equivalent to
  isinstance(x, A) or isinstance(x, B) or ...
and therefore
  isinstance(x, (A, (B, C)))
is equivalent to
  isinstance(x, A) or isinstance(x, (B, C))
which in turn is equivalent to
  isinstance(x, A) or (isinstance(x, B) or isinstance(x, C))

While this behavior seems intentional [0], it doesn't seem to be tested [1].  FTR this is supported by PyPy too.

[0]: http://hg.python.org/cpython/file/default/Objects/abstract.c#l2494
[1]: http://hg.python.org/cpython/file/default/Lib/test/test_builtin.py#l704
History
Date User Action Args
2012-11-08 23:46:28ezio.melottisetrecipients: + ezio.melotti, fossilet, docs@python
2012-11-08 23:46:28ezio.melottisetmessageid: <1352418388.79.0.681492891513.issue16437@psf.upfronthosting.co.za>
2012-11-08 23:46:28ezio.melottilinkissue16437 messages
2012-11-08 23:46:28ezio.melotticreate