Heim > Artikel > Backend-Entwicklung > Python isinstance bestimmt verschiedene Arten kleiner Details
1. 基本语法
isinstance(object, classinfo)
Gib true zurück, wenn das Objektargument eine Instanz des classinfo-Arguments oder einer (direkten, indirekten oder virtuellen) Unterklasse davon ist. Gibt auch „true“ zurück, wenn „classinfo“ ein Typobjekt (Klasse neuen Stils) ist und „object“ ein Objekt dieses Typs oder einer (direkten, indirekten oder virtuellen) Unterklasse davon ist. Wenn das Objekt keine Klasseninstanz oder ein Objekt des angegebenen Typs ist, gibt die Funktion immer false zurück. Wenn classinfo weder ein Klassenobjekt noch ein Typobjekt ist, kann es sich um ein Tupel von Klassen- oder Typobjekten handeln oder rekursiv andere solche Tupel enthalten (andere Sequenztypen werden nicht akzeptiert). Wenn classinfo keine Klasse, kein Typ oder kein Tupel von Klassen, Typen und solchen Tupeln ist, wird eine TypeError-Ausnahme ausgelöst.
classinfo ist eine Klasse, ein Typ oder ein Tupel von Klassen und Typen,
如果是 tuple,则满足 tuple 中的任何一个即返回 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