【发布时间】:2020-10-12 08:26:18
【问题描述】:
Python 中可选容器类型参数的约定如下:
def f(lst=None):
if lst is None:
lst = []
...
我在我的代码中使用了这种模式,以避免列表、字典或为函数全局定义的任何内容出现问题,并且如果下游的某些东西改变了该全局对象,则会出现问题。
这很好用,但现在我正在向我的代码的某些部分添加静态类型检查,我想知道在这里添加它们的最佳方法是什么。 lst 在定义为关键字参数时必须具有 Optional[List[T]] 类型,但在初始检查之后,它应该具有 List[T] 作为类型。我无法在声明lst 之后重新定义其类型,并且创建新参数似乎会添加不必要的代码行并且容易混淆。对该模式进行类型检查的最佳方法是什么?
【问题讨论】:
标签: python mypy static-typing