2011-11-25 76 views
0

我想檢查一個變量是否是SwigObject類型。我試圖使用isinstance內置,但不知道需要通過什麼(即isinstance(obj, ???))。如何檢查變量是否是SwigObject類型

謝謝!

+0

你只需要知道,如果它是一個特定的實例類,還是如果它具有它作爲祖先之一? – mac

回答

1

你只是問這個嗎?

>>> 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 
+0

是不是取決於他的進口說明,看它的樣子? – GoingTharn

+0

@GoingTharn - 是的,這就是爲什麼我使用「可能」一詞,但我不確定。讓我編輯一下......: – mac

+0

@GoingTharn - 完成了,謝謝你在檢查中額外的動機! ;) – mac

相關問題