如何在python中检查对象类型?

How to check type of object in Python?

本问题已经有最佳答案,请猛点这里访问。

我在变量v中有一些值,如何检查它的类型?

提示:不是v.dtype

当我在调试器中执行EDOCX1[2]时,我得到

1
type(v) = {type} <type 'h5py.h5r.Reference'>

1
type(v) = {type} <class 'h5py._hl.dataset.Dataset'>

如何在运行时检查这些值?

"检查"是指计算布尔结果,说明是否给出了类型。

更新

在所谓的"重复"问题中,有人说,要比较一个类型应该使用

1
type(v) is str

它隐式地假定类型是字符串。是吗?


什么类型()的意思是:

我觉得你的问题比我原来想的要普遍一点。带一个参数的type()返回对象的typeclass。因此,如果有a = 'abc'并使用type(a),则返回str,因为变量a是字符串。如果b = 10type(b)返回int

另请参见关于type()的python文档。

用于比较:

如果需要比较,可以使用:if type(v) == h5py.h5r.Reference(检查它是否是h5py.h5r.Reference实例)。

但建议使用if isinstance(v, h5py.h5r.Reference),然后子类也将对True进行评估。

如果要打印类,请使用print v.__class__.__name__

更一般地说,如果两个实例具有相同的类,可以使用type(v) is type(other_v)isinstance(v, other_v.__class__)进行比较。


使用isinstance(v, type_name)type(v) is type_nametype(v) == type_name

其中type_name可以是以下类型之一:

  • 没有
  • 布尔
  • int
  • 浮动
  • 复杂的
  • STR
  • 列表
  • 元组
  • 设置
  • 双关语

当然,

  • 自定义类型(类)