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

时间:2016-02-18 19:14:13

标签: python

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

提示:它不是v.dtype

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

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

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

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

&#34;检查&#34;表示计算布尔结果,说明是否给出了类型。

更新

在所谓的'#34;重复&#34;问题,据说,比较第一类应该使用

type(v) is str

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

2 个答案:

答案 0 :(得分:23)

什么类型()表示:

我认为你的问题比我原先想象的要宽泛一些。带有一个参数的type()将返回对象的typeclass。因此,如果您有a = 'abc'并使用type(a),则会返回str,因为变量a是一个字符串。如果b = 10,则type(b)会返回int

另见python documentation on type()

进行比较:

如果您想进行比较,可以使用: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__)来比较两个实例是否具有相同的类。

答案 1 :(得分:12)

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

其中 type_name 可以是以下之一:

  • BOOL
  • INT
  • 复杂
  • STR
  • 列表
  • 元组
  • 设置
  • 字典

,当然,

  • 自定义类型(类)