我在变量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
隐含地假设类型是字符串。是吗?
答案 0 :(得分:23)
我认为你的问题比我原先想象的要宽泛一些。带有一个参数的type()
将返回对象的type
或class
。因此,如果您有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_name
或type(v) == type_name
,
其中 type_name 可以是以下之一:
,当然,