python - isinstance() 使用的奇数类型语法
问题描述
我最近的任务是将一堆现有的 python 2.7 脚本迁移到 python 3.x,并注意到其中一个脚本中的一个我不太理解的语句:
if isinstance(some_variable, (list,)):
# ...
起初我认为(,)
语法可能是表达部分类型元组的一种方式,但情况似乎并非如此:
>>> isinstance(([],123), (list,))
False
查看调用代码,我发现唯一作为some_variable
列表传递的参数值,所以我测试了:
>>> isinstance([], (list,))
True
那么你为什么要使用(list,)
而不是仅仅list
使用 withisinstance()
呢?
我怀疑可能还有其他(类似列表的?)类型的调用isinstance()
会返回True
,但我没有必要的 python 经验来思考它是什么:)
解决方案
isinstance可以获取类型或类型元组作为第二个参数。
(list,)
是一个只有 1 个条目的元组。如果您只有一种类型可以与您进行比较,则不必使用tuple
推荐阅读
- ruby-on-rails - 无需请求即可获取 Rails 应用程序域名
- android - 检测退款的托管应用内购买android IAP 2.0.3
- excel - 使用数据时间戳和值跟踪单元格的值变化
- python - 多参数模型的拟合参数不是按新月顺序计算的
- python-2.7 - Pyparsing可选重复表达式的总和
- node.js - 从 firebase 中检索并在 ejs 中渲染
- sugarcrm - 在 SuiteCRM 中,如何在关系表的子面板中添加自定义字段?
- sql-server - ReportServer 数据库的大小不断增加。这个太大了
- javascript - 无法将数据从套接字发送到特定客户端
- python - 如何计算 OneVsRestClassifier 的预测精度?