【问题标题】:isinstance behavior incorrect?实例行为不正确吗?
【发布时间】:2021-01-25 20:26:53
【问题描述】:

这是调试控制台的输出

self.functionList = [regression(2)]
self.functionList
Out[1]: [<regression at 0x2530370a2c8>]
type(self.functionList)
Out[2]: list
isinstance(type(self.functionList), list)
Out[3]: False
type(self.functionList) == list
Out[4]: True
import typing
isinstance(type(self.functionList), typing.List)
Out[16]: False

我很困惑为什么isinstance 函数返回False,即使变量functionList 显然是list 类型的实例。

isinstance 的行为有什么问题?

【问题讨论】:

  • isinstance(type(self.functionList), list) 检查self.functionListtype 是否是list 的实例。只有self.functionList 它自己list 的一个实例。 isinstance(self.functionList, list) 应该是 True
  • 谢谢!这对我来说是一个相当愚蠢的错误。

标签: python-3.x isinstance


【解决方案1】:

你在比较错误的。试试这个代码。

import typing
isinstance(self.functionList, typing.List)

对于isinstance 方法,将对象与预期类型进行比较。如需更多信息,请参阅docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多