[英]How to type hint nametuple in python?
类型提示可以在python中定义返回类型,因此当函数返回namedtuple类型时,该如何定义它
def bar(func):
def decorator(*args, **kwargs):
return namedtuple('data', 'name user')(**func(*args, **kwargs))
return update_wrapper(decorator, func)
@bar
def info() -> NamedTuple:
return {'name': 'a1', 'user': 'b1'}
期望类型为“ NamedTuple”,而不是Dict [str,str]
如您所知,函数info()
返回Dict[str, str]
,但装饰器@bar
更改。 现在,函数info()
返回namedtuple对象,那么有没有办法通过python中的hint来指示函数info()
返回namedtupe对象?
NamedTuple实例是通过collections.namedtuple()函数创建的。
由于您对键入namedtuple的元素感兴趣,因此可以创建一个自定义类型,该类型继承NamedType的类型化版本(如@jab所述),并在类型提示中使用它,如下所示。
from typing import NamedTuple
class CustomType(NamedTuple):
name: str
user: str
def info() -> CustomType:
return CustomType('a1', 'b1')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.