On Thu, Aug 29, 2019 at 3:33 PM Chris Angelico <rosuav@gmail.com> wrote:
Open question: at runtime, what should `int | str` return? I don't want
On Fri, Aug 30, 2019 at 8:28 AM Guido van Rossum <guido@python.org> wrote: this to have to import the typing module. Maybe we could make a very simple `Union` builtin. This can then also be used by `~int` (which is equivalent to `int | None`).
Would it be okay to have a very simple Union builtin now, and it just always returns exactly that, and then in the future it might potentially actually return Union[int, str] ?
I'm not pushing for it *now*, but it would be extremely handy in the future to be able to say isinstance(3, int|str) and have it be meaningful.
Are you suggesting we introduce the "very simple Union builtin" earlier than the "int | str" notation/implementation? Why? 3.8 is closed for features, so it would be 3.9 at the earliest -- plenty of time to implement this right (including `isinstance(x, int|str)`). I do think we should probably review PEP 585 before doing anything about unions specifically -- likely there are bigger fish to fry. (And PEP 585 has not received much discussion.) -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him/his **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>