Если у меня есть такая функция:
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
scala
язык делает это. - person Israel Unterman   schedule 02.08.2016