首页 > 解决方案 > `isinstance()` 是否应该检查类型或 collections.abc?

问题描述

两者typingcollections.abc包括类似的类型,例如Mapping,Sequence等。

根据 python 文档,它似乎collections.abc是类型检查的首选:

该模块提供了抽象基类,可以用来测试一个类是否提供了特定的接口;例如,它是可散列的还是映射的。 https://docs.python.org/3/library/collections.abc.html

但使用typing也有效,我宁愿不Mapping从两者typing中导入collections.abc. 那么使用typingwith 有什么问题isinstance()吗?

标签: pythonisinstance

解决方案


没有问题。该typing库使用库中的存根collections。您完全可以使用isinstance类型库,当然对于您提到的类型(映射和序列)。


推荐阅读