【发布时间】:2019-07-26 01:39:06
【问题描述】:
我有一个可以接受Iterable[int] 的函数,但我不想接受字典。我有另一种方法来处理它。如何在类型提示中指出这一点?
def unpack(iterable_to_unpack : Iterable[int]):
sequence 会更合适吗?
def unpack(sequence_to_unpack : Sequence[int]):
从iterable的definition看来,应该是这样的。
一个能够一次返回其成员的对象。示例 可迭代对象包括所有序列类型(例如 list、str 和 tuple) 以及一些非序列类型,如字典、文件对象..
【问题讨论】:
-
您必须检查参数的类型,如果是字典,则引发错误。
-
对,但
Sequence[int]是否是正确的类型提示,表明它只接受List、Tuple等,而不接受字典? -
你不能简单地通过测试
List、Tuple和dict来测试Sequence[int]是否是正确的类型吗? -
我可以,但我认为最好像这样测试它,
if (isinstance(sequence_to_unpack, Mapping)):但我仍然需要正确的类型提示。
标签: python function type-hinting