我有一个函数,要求参数同时是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