方法 Mapping.get
不接受关键字参数,它们只是位置参数。如果使用不当,为什么mypy无法检测到?
$ mypy --command "a: str = dict(b='yes').get('a', default='no')"
Success: no issues found in 1 source file
$ python
Python 3.9.1 (default, Jan 13 2021, 15:21:08)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a: str = dict(b='yes').get('a', default='no')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: dict.get() takes no keyword arguments
2016年有一个pr,其中引入了一个约定,即以两个下划线开头的参数仅适用于mypy。这样的基本类型难道就不遵循这一惯例吗?我想知道为什么。
请注意,pep 570已经创建,2018年刚刚随python 3.8引入。
暂无答案!
目前还没有任何答案,快来回答吧!