【发布时间】:2016-12-08 05:26:00
【问题描述】:
如果我有这样的功能:
def foo(name, opts={}):
pass
我想给参数添加类型提示,我该怎么做?我假设的方式给了我一个语法错误:
def foo(name: str, opts={}: dict) -> str:
pass
以下内容不会引发语法错误,但似乎不是处理这种情况的直观方式:
def foo(name: str, opts: dict={}) -> str:
pass
我在 typing documentation 或 Google 搜索中找不到任何内容。
编辑:我不知道默认参数在 Python 中是如何工作的,但为了这个问题,我将保留上面的示例。一般来说,最好执行以下操作:
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
【问题讨论】:
-
最后一个函数是正确的方法。
scala语言也是如此。 -
你有一个可变的默认类型——这会导致问题
-
@noɥʇʎԀʎzɐɹƆ 除非您将其用于,例如记忆。 :P
标签: python type-hinting python-typing