[New-bugs-announce] [issue44606] Discrepancy between isinstance() and issubclass() for union types
Serhiy Storchaka
report at bugs.python.org
Mon Jul 12 01:33:30 EDT 2021
New submission from Serhiy Storchaka <storchaka+cpython at gmail.com>:
1. Different handling of None:
>>> isinstance(None, int | type(None))
True
>>> issubclass(type(None), int | type(None))
True
>>> isinstance(None, int | None)
True
>>> issubclass(type(None), int | None)
False
2. Different handling of virtual subclasses:
>>> import collections.abc
>>> isinstance({}, int | collections.abc.Mapping)
True
>>> issubclass(dict, int | collections.abc.Mapping)
False
I do not know what behavior is correct.
----------
components: Interpreter Core
messages: 397281
nosy: gvanrossum, serhiy.storchaka
priority: normal
severity: normal
status: open
title: Discrepancy between isinstance() and issubclass() for union types
type: behavior
versions: Python 3.10, Python 3.11
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44606>
_______________________________________
More information about the New-bugs-announce
mailing list