首页 > 解决方案 > 是否有用于表示具有 __contains__ 方法的注释的 Python 类型?

问题描述

我寻找Type以下类型检查OK:

import typing

def f(a: str, collection: Type):
    return a in collection

也就是说,Type断言collection__contains__

标签: pythontypesannotationstyping

解决方案


将此页面添加为书签,因为搜索起来很痛苦,但也很有帮助。

正如您在该表的顶部所看到的,aContainer是一个具有__contains__方法的对象:

from typing import Container

def f(a: str, collection: Container[str]):
    return a in collection

该表引用 中的类collections,但typing包含相同类的通用类型变体。

如果collections.Container/typing.Container不存在,您也可以创建自己的Protocol以正确提示。


推荐阅读