Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中键入提示nametuple?_Python_Python 3.x_Type Hinting - Fatal编程技术网

如何在python中键入提示nametuple?

如何在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

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”,改为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
的预期用途。