On Fri, Aug 30, 2019 at 5:46 AM Andrew Barnert via Python-ideas <[email protected]> wrote: > > On Aug 29, 2019, at 12:09, Dominik Vilsmeier <[email protected]> wrote: > > > > What about using `(int, str)` for indicating a `Union`? This doesn't have > > compatibility issues and it's similar to `isinstance(foo, (int, str))`, so > > it should be fairly intuitive: > > > > def bar(foo: (int, str) = 0): > > ... > > In most languages with similar-ish type syntax, (int, str) means Tuple[int, > str], not Union[int, str]. Scala and TypeScript copied this from ML just > like Haskell and F# did. And I’d bet this is the main reason that {str, int} > rather than (str, int) was proposed the first time around. > > But, balanced against the long-standing Python-specific use of tuples for > small numbers of alternatives, including alternative types in places like > isinstance, except, etc.? Maybe that beats the cross-linguistic issue. > > Either one seems a lot better than breaking backward compatibility by adding > new operator methods to the type type. >
How does that break backward compat? ChrisA _______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/OQ7WZVSXFALBFDBBEKA7FJ5XMY3GZ6YJ/ Code of Conduct: http://python.org/psf/codeofconduct/
