Python 3.x 如何键入一个返回已在函数中创建的NamedTuple的函数

Python 3.x 如何键入一个返回已在函数中创建的NamedTuple的函数,python-3.x,type-hinting,namedtuple,Python 3.x,Type Hinting,Namedtuple,我的IDE的(PyCharm)linter表示我在函数中创建namedtuple时,我的return类型提示出错。问题似乎是我说我将返回typeNamedTuple,而实际上我返回typeMyNamedTuple。我怎样才能解决这个问题 例如: 输入import Dict,NamedTuple def foo(条形图:Dict)->命名倍数: MyNamedTuple=NamedTuple(“MyNamedTuple”,[(k,int)表示bar.keys()中的k) d={k:v代表k,v在b

我的IDE的(PyCharm)linter表示我在函数中创建
namedtuple
时,我的
return
类型提示出错。问题似乎是我说我将返回type
NamedTuple
,而实际上我返回type
MyNamedTuple
。我怎样才能解决这个问题

例如:

输入import Dict,NamedTuple
def foo(条形图:Dict)->命名倍数:
MyNamedTuple=NamedTuple(“MyNamedTuple”,[(k,int)表示bar.keys()中的k)
d={k:v代表k,v在bar.items()中]
返回MyNamedTuple(**d)
>>>foo({“a”:1,“b”:2})
MyNamedTuple(a=1,b=2)

你可以做
def foo(bar:Dict)->“MyNamedTuple”
作为一种变通方法。我想说的是不要这样做,创建一个包含任何字段的命名元组对我来说都是一种非常糟糕的做法。谢谢@Asocia!这可以作为一个解决办法。感谢你提出@Hollay Horváth Zsombor——我刚刚单独发布了一篇关于这个问题的讨论,以防你乐意看一看。再次感谢!