如何在Python中检查对象的类型?

Suz*_*ioc 8 python

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

提示:它不是v.dtype.

当我type(v)在调试器中,我得到

type(v) = {type} <type 'h5py.h5r.Reference'>
Run Code Online (Sandbox Code Playgroud)

要么

type(v) = {type} <class 'h5py._hl.dataset.Dataset'>
Run Code Online (Sandbox Code Playgroud)

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

"检查"表示计算布尔结果,说明是否给出了类型.

UPDATE

在所谓的"重复"问题中,据说比较第一类应该使用

type(v) is str
Run Code Online (Sandbox Code Playgroud)

隐含地假设类型是字符串.是吗?

MSe*_*ert 25

什么类型()意味着:

我认为你的问题比我原先想象的要宽泛一些.type()使用一个参数返回对象的typeclass.所以如果你有a = 'abc'并且使用type(a)它返回,str因为变量a是一个字符串.如果b = 10,type(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__).


Hen*_*uni 12

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

其中type_name可以是以下之一:

  • 没有
  • 布尔
  • INT
  • 浮动
  • 复杂
  • 海峡
  • 名单
  • 元组
  • 字典

而且当然,

  • 自定义类型(类)