如何在python中键入提示nametuple?
Type hint可以在python中定义返回类型,因此当函数返回namedtuple Type时,如何定义它如何在python中键入提示nametuple?,python,python-3.x,type-hinting,Python,Python 3.x,Type Hinting,Type hint可以在python中定义返回类型,因此当函数返回namedtuple Type时,如何定义它 def条(func): def装饰器(*args,**kwargs): 返回namedtuple('data','name user')(**func(*args,**kwargs)) 返回更新包装(decorator,func) @酒吧 def info()->NamedTuple: 返回{'name':'a1','user':'b1'} 预期类型为“NamedTuple”,改为D
def条(func):
def装饰器(*args,**kwargs):
返回namedtuple('data','name user')(**func(*args,**kwargs))
返回更新包装(decorator,func)
@酒吧
def info()->NamedTuple:
返回{'name':'a1','user':'b1'}
预期类型为“NamedTuple”,改为Dict[str,str]
如您所知,函数
info()
返回Dict[str,str]
,但装饰程序@bar
会更改它。现在函数info()
返回一个namedtupe对象,那么有没有一种方法可以指示函数info()
在python中按类型提示返回namedtupe对象?namedtupe实例是通过函数创建的
由于您对键入namedtuple的元素感兴趣,因此可以创建一个自定义类型,该类型继承NamedType的类型化版本(如@jab所述),并在类型提示中使用它,如下所示
from typing import NamedTuple
class CustomType(NamedTuple):
name: str
user: str
def info() -> CustomType:
return CustomType('a1', 'b1')
你知道如何使用namedtuples吗?你有没有阅读过欢迎SO的文件。我假设您在
info
方法中得到错误?这是一个信息丰富的答案,但显示的代码与问题的上下文不匹配。装饰器(@bar
)如何适应此。。。我想知道。在问题中,错误消息对应于info()
的类型提示。我假设@bar
是OP试图向info()
添加类型提示的一部分。如果假设正确,则不需要@bar
。如果没有,OP应说明@bar
的预期用途。