To do this EVERY object that you might list as alternatives would have to support `__or__()` and `__ror__()`.
Moreover, for many types, `|` is defined with conflicting meaning. E.g. `3 | 5 | 11 == 15`. But of course 3, 5, 11 aren't the unique collection of numbers that bitwise or to 15. At runtime, we'd have no idea what the alternatives so expressed were. On Sat, Feb 5, 2022, 2:24 PM Abdulla Al Kathiri <alkathiri.abdu...@gmail.com> wrote: > Hello all, > > Why can’t we use the literals directly as types? For example, > > x: Literal[1, 2, 3] = 3 > name: Literal[“John”] | None = “John" > > Become …. > > x: 1 | 2 | 3 = 3 > name: “John” | None = “John" > > > def open(file: Path | str, mode: “w” | “a” = “w”): … > > Best Regards, > > Abdulla > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/IJ74AQRHCIIICNWYYBQTSQD2BQASRSBL/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/D3OA46AX2O6PA7XUPQDUMXIHC3HOB6GC/ Code of Conduct: http://python.org/psf/codeofconduct/