【发布时间】:2017-10-28 18:38:47
【问题描述】:
我正在使用 Python 3 键入功能来更好地自动完成。
很多时候我的函数会返回带有特定键的键/值(字典)。超级简单的例子:
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:
但是每个字典都需要太多的代码。
在这种情况下,最佳做法是什么?
【问题讨论】:
-
您是否考虑过使用
collections.namedtuple来创建您的自定义类型?它确实只生成不可变类型,但取决于您之前使用字典的方式,这可能不是问题。 -
您也可以尝试使用来自typing 模块的
Dict[str, str]类型提示。 -
@Blckknght 感谢您提醒我这个选项。找到我需要的东西。有一个名为 tuple docs.python.org/3/library/typing.html#typing.NamedTuple 的类型
标签: python dictionary type-hinting python-typing typeddict