Object-Oriented Programming
Classes are Pythonâs main object-oriented programming (OOP) tool. They support multiple instances, attribute inheritance, and operator overloading.
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 are inherited object state and behavior.Class methods are nested
def
s, with special first arguments to receive the implied subject 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
, ifobject
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, and uses the first version of an attribute name found. Superclasses are searched depth-first and then left-to-right (but new-style classes search across before proceeding up in diamond pattern trees).
Pseudoprivate Attributes ...
Get Python Pocket Reference, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.