如果我有这样的功能:
def foo(name, opts={}):
pass
我想在参数中添加类型提示,该怎么办?我假设的方式给了我一个语法错误:
def foo(name: str, opts={}: dict) -> str:
pass
以下内容不会引发语法错误,但似乎不是处理这种情况的直观方法:
def foo(name: str, opts: dict={}) -> str:
pass
我在typing
文档或Google搜索中找不到任何内容。
编辑:我不知道默认参数如何在Python中工作,但出于这个问题,我将保留上面的示例。通常,最好执行以下操作:
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
你有一个可变的默认类型-这将导致问题
—
noɥʇʎԀʎzɐɹƆ
看到我更新的答案,@josh
—
noɥʇʎԀʎzɐɹƆ
@noɥʇʎԀʎzɐɹƆ除非您将其用于备忘录,否则不要这么做。:P
—
Mateen Ulhaq,
scala
语言做这一点。