2015-12-14 80 views
0

如何驗證變量是否是有效的類或類型? 我想驗證它,然後將它傳遞到isinstance()try catch之外還有其他方法嗎? 我使用python2如何確定一個變量是否是一個有效的類或python類型?

+2

變量如何不是任何有效類型? – timgeb

+2

這不就是你會使用isinstance的原因嗎? –

+0

說例如,如果我做isinstance(a,{}),我會得到一個類型錯誤。我想確保我傳入isinstance的第二個參數是有效的。 –

回答

4

至於我的評論:

類和類型的type所有實例,可以這麼說。這就是爲什麼這將工作:

>>> class foo(): 
    pass 

>>> t = foo 
>>> t 
<class '__main__.foo'> 
>>> isinstance(t,type) 
True 

編輯 - 這適用於Python3.x

關於Python 2.x中的類必須是一個新的風格的一個(即從object繼承)

class foo(object): 
    pass 
+0

恐怕你的答案只適用於Python3。 OP使用Python 2.7 – Pynchia

+0

@Pynchia,這是我總是忘記考慮的一個公平點。感謝上帝。編輯以明確說明這一點。 –

+0

順便說一句,OP談到變量/實例,我明白,不是類。即't = foo()'。在這種情況下,上面的解決方案在python 2下失敗(使用舊式或新式類。順便說一句,爲什麼在類聲明中使用parens?) – Pynchia

相關問題