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