簡體   English   中英

有限迭代的類型提示

[英]Type Hint for finite iterable

我的 function foo接受一個參數things ,該參數在內部變成一個列表。

def foo(things):
    things = list(things)
    # more code

list構造函數接受任何可迭代的。

但是,使用typing.Iterable注釋things並沒有給用戶一個線索,即 iterable 必須是有限的,而不是像itertools.count()這樣的東西。

在這種情況下使用的正確類型提示是什么?

我不知道在 Python 中實現此目的的任何可能方法,因為您無法在類型提示中提供此類約束。


但是, Collection類型可能在您的上下文中作為一種解決方法有用:

class collections.abc.Collection

ABC 用於大小可迭代的容器類。

這要求對象具有__len__ ,這是比有限更嚴格的要求。 例如,有限生成器不算作Collection

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM