python参数类型提示是否支持嵌套类型信息?

python参数类型提示是否支持嵌套类型信息?,python,types,Python,Types,我有一个逻辑上如下的函数: def computeProbability( x_i: np.array(np.int32), colProbabilities: list(dict(string,np.float32)) ) -> list(double): return [] # placeholder 我的猜测是,这里可以实现的最严格的类型检查是: def computeProbability(x_i: np.array, colProbabil

我有一个逻辑上如下的函数:

 def computeProbability(
     x_i: np.array(np.int32), 
     colProbabilities: list(dict(string,np.float32))
 ) -> list(double):
     return []  # placeholder
我的猜测是,这里可以实现的最严格的类型检查是:

def computeProbability(x_i: np.array, colProbabilities: list) -> list:
     return []  # placeholder
这个假设正确吗?

事实上,提供深层类型信息是可能的。刚刚从python 3.5+中发现了
类型提示。这些对于IDE来说是非常好的:例如,你可以这样做

ListOfDict = List[Dict[str, float]]
然后声明一个方法,该方法返回带有字符串键和浮点值的dict列表

from typing import List, Dict
Vector = List[float]
ListOfDict = List[Dict[str, float]]
使用此选项:

def computeLikelihood(x_i_vals: Vector, allProbs: ListOfDict):
现在我们可以在IDE中获得方法提示了


这是开发嵌套数据结构的一大胜利

您可以在某种程度上使用
键入
模块实现它:;否决票是我见过的不太容易理解的投票之一。这样做的人可能会问自己“我看到的python代码中有多少实际使用了这些嵌套类型提示”。我从未在野外见过它。无论如何,我要把它展示给同事和其他同学看,因为它很有用。@javadba:我已经给你加满了,techbro。最初的问题和随后的自我回答都格式良好,表达清晰,恰到好处。莫名其妙的落选当然是不值得的。通过有力的投票,让我们撤销过去人类集体给我们所有人造成的业力伤害!