CHAPTER 8

Object-Oriented Programming

8.1 Defining a New Python Class

8.2 Examples of User-Defined Classes

8.3 Designing New Container Classes

8.4 Overloaded Operators

8.5 Inheritance

8.6 User-Defined Exceptions

8.7 Case Study: Indexing and Iterators

Chapter Summary

Solutions to Practice Problems

Exercises

Problems

THIS CHAPTER DESCRIBES how to implement new Python classes and introduces object-oriented programming (OOP).

There are several reasons why programming languages such as Python enable developers to define new classes. Classes that are custom-built for a particular application will make the application program more intuitive and easier to develop, debug, read, and maintain.

The ability to create new classes also enables a new approach to structuring application programs. A function exposes to the user its behavior but encapsulates (i.e., hides) its implementation. Similarly, a class exposes to the user the methods that can be applied to objects of the class (i.e., class instances) but encapsulates how the data contained in the objects is stored and how the class methods are implemented. This property of classes is achieved thanks to fine-grained, customized namespaces that are associated with every class and object. OOP is a software development paradigm that achieves modularity and code portability by organizing application programs around components that are classes and objects.

8.1 Defining a New Python Class

We now explain how to define a new class in Python. The first ...

Get Introduction to Computing Using Python: An Application Development Focus 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.