Message175208
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 |
|
Date |
User |
Action |
Args |
2012-11-08 23:46:28 | ezio.melotti | set | recipients:
+ ezio.melotti, fossilet, docs@python |
2012-11-08 23:46:28 | ezio.melotti | set | messageid: <1352418388.79.0.681492891513.issue16437@psf.upfronthosting.co.za> |
2012-11-08 23:46:28 | ezio.melotti | link | issue16437 messages |
2012-11-08 23:46:28 | ezio.melotti | create | |
|