python - `isinstance()` 是否应该检查类型或 collections.abc?
问题描述
两者typing
和collections.abc
包括类似的类型,例如Mapping
,Sequence
等。
根据 python 文档,它似乎collections.abc
是类型检查的首选:
该模块提供了抽象基类,可以用来测试一个类是否提供了特定的接口;例如,它是可散列的还是映射的。 https://docs.python.org/3/library/collections.abc.html
但使用typing
也有效,我宁愿不Mapping
从两者typing
中导入collections.abc
. 那么使用typing
with 有什么问题isinstance()
吗?
解决方案
没有问题。该typing
库使用库中的存根collections
。您完全可以使用isinstance
类型库,当然对于您提到的类型(映射和序列)。
推荐阅读
- azure-monitoring - 基于自定义指标的 Azure Monitor 警报
- specifications - Dafny 无法证明整数数组中的最大元素
- chart.js - 我可以用两种颜色更改 Chart.js 的同一行吗?
- performance - 将大数据从解析器传递到客户端的网络时间很慢
- r - 是否有用于在 R Shiny 中创建数据框的 R 函数
- javascript - 从给定数据包装一个 div 和锚标签
- java - 使用可变程序参数以灵活的方式启动 docker
- c - 如何修复 C 中的“内存泄漏”
- mysql - 如何查询mysql表中记录的总字节长度?
- c++ - 具有默认值的模板特化