Classes, Types, and Membership Tests
Objects defined by a class are not types
- All classes have a type of ClassType
- All instances have a type of InstanceType
- Thus, type(a) == type(b) for any two instances of any classes.
Membership tests
- isinstance(obj,c). Tests if obj is an instance of class c.
class A: pass
class B(A): pass
a = A()
b = B()
isinstance(a,A) # Returns 1
isinstance(b,A) # Returns 1 (B is a subclass of A)
isinstance(a,B) # Returns 0
- issubclass(c1,c2). Tests if class c1 is a subclass of class c2.
issubclass(B,A) # Returns 1
issubclass(A,B) # Returns 0
|