Summary

This chapter has been about two special objects in Python—classes and instances—and the language tools that create and process them. Class objects are created with class statements, provide default behavior, and serve as generators for multiple instance objects. Together, these two objects support full-blown object-oriented development and code reuse. In short, classes allow us to implement new objects, which export both data and behavior.

In terms of their main distinctions, classes support multiple copies, specialization by inheritance, and operator overloading, and we explored each of these features in this chapter. Since classes are all about namespaces, we also studied the ways they extend module and function namespace notions. And finally, we explored a few object-oriented design ideas such as composition and delegation, by seeing how to implement them in Python.

The next chapter concludes our core language tour, with a quick look at exception handling—a simple tool used to process events, rather than build program components. As a summary and reference of what we learned in this chapter, here’s a synopsis of the terms we’ve used to talk about classes in Python:

Class

An object (and statement) that defines inherited attributes

Instance

Objects created from a class, which inherit its attributes, and get their own namespace

Method

An attribute of a class object that’s bound to a function object

self

By convention, the name given to the implied instance object in methods

Inheritance ...

Get Learning Python 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.