
Object-Oriented Programming
|
57
Classes and Instances
Class objects provide default behavior
• The class statement creates a class object and assigns it
to a name.
• Assignments inside
class
statements create class attributes,
which export object state and behavior.
• Class methods are nested defs, with special first argu-
ments to receive the instance.
Instance objects are generated from classes
• Calling a class object like a function makes a new
instance object.
• Each instance object inherits class attributes and gets its
own attribute namespace.
• Assignments to attributes of the first argument (e.g.,
self.X = V) in methods create per-instance attributes.
Inheritance rules
• Inheritance happens at attribute qualification time: on
object.attribute, if object is a class or instance.
• Classes inherit attributes from all classes listed in their
class statement header line (superclasses). Listing more
than one means multiple inheritance.
• Instances inherit attributes from the class from which
they are generated, plus all that class’s superclasses.
• Inheritance searches the instance, then its class, then all
accessible superclasses (depth-first, and left-to-right),
and uses the first version of an attribute name found.