如何检查变量是否为SwigObject类型

时间:2011-11-25 21:24:00

标签: python

我想检查变量是否是SwigObject类型。我正在尝试使用isinstance内置但不知道需要传递什么(即isinstance(obj, ???))。

谢谢!

1 个答案:

答案 0 :(得分:0)

你只是要求这个吗?

>>> a = list()
>>> isinstance(a, int)
False
>>> isinstance(a, list)
True

正如您所看到的,isinstance的第一个参数是您的对象实例化,第二个 - 在您的情况下 - 可能看起来像swig.SwigObject(您需要为该类提供正确的“路径” ,包括其模块)。

编辑:在下面的评论的推动下,我进行了额外的转储以测试并澄清您的课程应该如何:

>>> import numpy as np  #notice that the module's name change here...
>>> a = np.array(())
>>> type(a)
<type 'numpy.ndarray'>  #...type still returns the full name of the module...
>>> isinstance(a, numpy.ndarray)  #...but if you try to use the full name here...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'numpy' is not defined
>>> isinstance(a, np.ndarray)  #...instead you must use the name known in your namespace
True