2011-11-08 173 views
7

我只是經歷了一些Python的幫助文檔和整個下面的代碼段傳來:isinstance(對象類型)在python

isinstance(object,type) 

誰能解釋這是什麼類型的上述聲明是什麼意思?

謝謝, Vineel

+0

是它的具體的代碼示例,以上僞代碼式的(例如,簽名)的一部分?或者更好的,展示上下文。這段代碼可悲的是對兩者都有意義。 – delnan

+0

如有疑問請閱讀文檔 –

回答

11

type必須是一個對象表示一個類型/類別,如intstr。例如,isinstance(1, int)評估爲True,而isinstance(sys.stdin, str)評估爲False。如果您定義了class Foo,那麼Foo也是一個類型對象。

編輯:作爲@delnan筆記,type本身也是Python中的類型,所以isinstance(str, type)是正確的,因爲str是一個類型,而isinstance('foo', type)是假的。 object也是Python中的一種類型,並且是類型層次結構的根。

+0

@vineel:更新了答案。 –

+0

thanQ ...它清除了我:) – vineel

0

該聲明檢查object的類型是typetype變量應該是一個類。如果對象參數是CLASSINFO參數的實例,或其(直接,間接或虛擬的)亞類的

0
isinstance(object, classinfo) 

返回真。如果classinfo是一個類型對象(new-style class),並且object是該類型的對象或其(直接,間接或虛擬)子類的對象,則也會返回true。如果object不是給定類型的類實例或對象,則該函數始終返回false。如果classinfo既不是類對象也不是類型對象,則它可能是類或類型對象的元組,或者可能遞歸地包含其他這樣的元組(其他序列類型不被接受)。如果classinfo不是類,類型或者元組,類型和這樣的元組,則會引發TypeError異常。

在版本2.2中更改:添加了對類型信息元組的支持 。

引自:http://docs.python.org/library/functions.html#isinstance