我有一個函數,要求參數同時是Sizing和Iterable。如何提示python3.6該參數的大小和迭代都是?
def foo(items):
print(len(items))
for i in item:
print(i)
我認爲我可以使用標準typing
模塊從python3.5 +和這樣寫:
from typing import Collection, Any
def foo(items: Collection[Any]):
print(len(items))
for i in item:
print(i)
foo([1, 2, 3])
# PyCharm warns: Expected type 'Collection', got 'List[int]' instead.
Collection看起來像什麼,我需要:class typing.Collection(Sized, Iterable[T_co], Container[T_co])
爲什麼它會導致警告?
我該怎麼做提示參數作爲Iterable和Sizing?
'集合'確實是大小和可迭代的(另見['abc'版本](https://docs.python.org/3/library/collections.abc.html#collections.abc.Collection));這可能是PyCharm或其使用的任何插件中的一個錯誤。 – jonrsharpe