That's proposed in PEP 645 ( Personally I think it's not necessary, we should just write MyType | None. (Yes, this is directly from TypeScript.)

On Sun, Aug 15, 2021 at 6:10 AM Will Bradley <> wrote:
Hi all,

As of 3.10 (PEP 604) we've gotten syntactical support for a common type operation— namely, typing.Union[Type1, Type2] can now be written as Type1 | Type2 . This is achieved via overriding the __or__ method. 

I propose the ? symbol as sugar for typing.Optional, so that typing.Optional[MyType] can be written as MyType? . (Yes, this is lifted directly from C#.)

Thoughts? Is it unnecessary now that we can write MyType | None as of 3.10?

Python-ideas mailing list --
To unsubscribe send an email to
Message archived at
Code of Conduct:

--Guido van Rossum (
Pronouns: he/him (why is my pronoun here?)