如果我有一个这样的函数:
def foo(name, opts={}):
pass
我想给参数添加类型提示,我该怎么做?我假设的方式给了我一个语法错误:
def foo(name: str, opts={}: dict) -> str:
pass
以下不会引发语法错误,但它似乎不是处理这种情况的直观方法:
def foo(name: str, opts: dict={}) -> str:
pass
我在其中找不到任何内容typing文档或通过谷歌搜索。
编辑:我不知道默认参数在Python中是如何工作的,但为了这个问题,我将保留上面的例子。一般来说,最好执行以下操作:
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
你的第二种方法是正确的。
def foo(opts: dict = {}):
pass
print(foo.__annotations__)
这输出
{'opts': <class 'dict'>}
确实,它没有列出来PEP 484,但类型提示是函数注释的一种应用,记录在 PEP 3107 中。语法部分清楚地表明关键字参数以这种方式与函数注释一起使用。
我强烈建议不要使用可变关键字参数。更多信息here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)