Как бы я указал, что функция принимает любую итерацию, кроме словаря? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть функция, которая будет принимать Iterable[int], но я не хочу, чтобы словари были приняты.У меня есть другой способ справиться с этим.Как мне указать, что в подсказке типа?

def unpack(iterable_to_unpack : Iterable[int]):

Будет ли sequence более подходящим?

def unpack(sequence_to_unpack : Sequence[int]):

Из определение итерируемого, может показаться, что это так.

Объект, способный возвращать своих членов по одному за раз.Примеры итераций включают в себя все типы последовательностей (например, list, str и tuple) и некоторые непоследовательные типы, такие как dict, файловые объекты.

1 Ответ

0 голосов
/ 04 марта 2019

Это помогает?Из документов :

from typing import List
Vector = List[float]

def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]

# typechecks; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])
...