Using isinstance() & issubclass() in Python
isinstance()
The builtin function isinstance(obj, cls) returns True if obj is an instance of class cls, else returns False.
>>> help(isinstance) Help on built-in function isinstance in module builtins: isinstance(...) isinstance(object, class-or-type-or-tuple) -> bool Return whether an object is an instance of a class or of a subclass thereof. With a type as second argument, return whether that is the object's type. The form using a tuple, isinstance(x, (A, B, ...)), is a shortcut for isinstance(x, A) or isinstance(x, B) or ... (etc.). ### EXAMPLES ### >>> if isinstance(4, int): print("4 is an integer!") 4 is an integer! >>> isinstance(4, str) False >>> isinstance(4, int) True >>> class Man(object): pass >>> ethan = Man() >>> isinstance(ethan, Man) True
If you are uncertain about the exact parent class of the object, you can insert all the likely classes in the form of a tuple. The isinstance() function will return True if the object belongs to either of the specified classes.
>>> isinstance(4, (str, int) ) True
Keep in mind that all builtin-classes, data types, user-defined classes inherit from the class called object.
issubclass()
The builtin function issubclass(subClass, superClass) returns True if the class subClass is a subclass of the class superClass, else it returns False.
>>> help(issubclass) Help on built-in function issubclass in module builtins: issubclass(...) issubclass(C, B) -> bool Return whether class C is a subclass (i.e., a derived class) of class B. When using a tuple as the second argument issubclass(X, (A, B, ...)), is a shortcut for issubclass(X, A) or issubclass(X, B) or ... (etc.). ### EXAMPLE ### >>> class Person(object): pass >>> class Man(Person): pass >>> class Woman(Person): pass >>> issubclass(Man, Person) True >>> issubclass(Man, object) True >>> issubclass(Woman, Man) False
If you are uncertain about the exact parent class of a subclass, you can insert all the likely classes in the form of a tuple. The issubclass() function will return True if the class specified is a subclass of either of the specified classes.
>>> issubclass( Man, (Person, Woman) ) True >>> issubclass( Person, (Man, Woman) ) False
Keep in mind that all builtin-classes, data types, user-defined classes inherit from the class called object.