[New-bugs-announce] [issue42288] typing.get_type_hints() returns Optional[Any] if the default value of the argument is None

Komiya Takeshi report at bugs.python.org
Sat Nov 7 23:51:22 EST 2020


New submission from Komiya Takeshi <i.tkomiya at gmail.com>:

I noticed `typing.get_type_hints()` returns Optional[Any] as a type hints if the default value of the argument is None:

```
$ python
Python 3.9.0 (default, Oct 24 2020, 15:41:29)
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from typing import Any, get_type_hints
>>> def hello(name: Any = None):
...     pass
...
>>> get_type_hints(hello)
{'name': typing.Optional[typing.Any]}
```

I know typing.get_type_hints() wraps the user's type annotation with Optional when the default value of the argument is None. But it is needless to wrap Any with Optional because Any already contains None. It would be better not to wrap it with Optional when the user's annotation is Any.

----------
messages: 380532
nosy: i.tkomiya
priority: normal
severity: normal
status: open
title: typing.get_type_hints() returns Optional[Any] if the default value of the argument is None
versions: Python 3.10, Python 3.6, Python 3.7, Python 3.8, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42288>
_______________________________________


More information about the New-bugs-announce mailing list