【发布时间】:2019-10-19 13:51:58
【问题描述】:
类型提示在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中的类型提示来指示函数info()返回namedtupe对象呢?
【问题讨论】:
-
你知道如何使用命名元组吗?你读过
typing.NamedTuple的文档吗? -
欢迎来到 SO。我假设您在
info方法上遇到错误?
标签: python python-3.x type-hinting