已知密钥键入的Python 3字典

时间:2017-05-28 09:32:24

标签: python-3.x type-hinting

我正在使用python3输入功能来获得更好的自动完成功能。

我很多时候都有使用特定键返回键/值(字典)的函数。超级简单的例子:

def get_info(name):
    name_first_letter = name[0]
    return {'my_name':name, 'first_letter':name_first_letter}

我想在此函数中添加类型提示,以告诉使用此函数的其他人期待什么。

我可以做类似的事情:

 class NameInfo(object):
     def __init__(self, name, first_letter):
         self.name = name
         self.first_letter = first_letter

然后将函数签名更改为:

def get_info(name)->NameInfo:

但它需要为每个字典提供太多代码。

在这种情况下,最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

正如Blckknght所指出的那样,您和斯坦尼斯拉夫·伊万诺夫(Stanislav Ivanov)在评论中都可以使用NamedTuple

from typing import NamedTuple


class NameInfo(NamedTuple):
    name: str
    first_letter: str


def get_info(name: str) -> NameInfo:
    return NameInfo(name=name, first_letter=name[0])