首頁  >  文章  >  後端開發  >  python isinstance 判斷各種類型的小細節

python isinstance 判斷各種類型的小細節

高洛峰
高洛峰原創
2016-10-19 11:08:421215瀏覽

1. 基本語法

isinstance(object, classinfo)

如果 object 參數是 classinfo 參數或其(直接、間接或虛擬)子類別的實例,則傳回 true。如果 classinfo 是類型物件(新式類別)且 object 是該類型或其(直接、間接或虛擬)子類別的對象,也傳回 true。如果 object 不是類別實例或給定類型的對象,則該函數始終傳回 false。如果classinfo既不是類別物件也不是類型對象,它可能是類別或類型物件的元組,或者可以遞歸地包含其他這樣的元組(不接受其他序列類型)。如果 classinfo 不是類別、類型或類別、類型和此類元組的元組,則會引發 TypeError 異常。

 

classinfo 處可以是類別、類型或類別和類型的元組,

如果是元組,則滿足元組中的任何一個即傳回 True

2. 字串的類型判斷。

字串,分為 str 和 unicode,兩者皆繼承自 basestring

>>> isinstance(u'3.0', unicode)
True
>>> isinstance('3.0', str)
True
>>> isinstance(u'3.0', str)
False
>>> isinstance(u'3.0', str)
False
>>> isinstance(u'3.0', basestring)
True
>>> isinstance('3.0', basestring)
True

3. 數字的型別判斷

數字分為 int 和 float,暫未發現兩個共同的有效父類。

可以用 (int, float) tuple 來判斷是否為數字(int 或 float)

>>> isinstance('3', (int, float))
False
>>> isinstance(3.0, (int, float))
True
>>> isinstance(3, (int, float))
True
>>> isinstance(3.0, float)
True
>>> isinstance(3.0, int)
False
>>> isinstance(3, float)
False
>>> isinstance(3, int)
True


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn