If you did not understand all of Chapter 23, don’t worry; now that we’ve had a quick tour, we’re going to dig a bit deeper and study the concepts introduced earlier in further detail. In this chapter, we’ll take another look at classes and methods, inheritance, and operator overloading, formalizing and expanding on some of the class coding ideas introduced in Chapter 23. Because the class is our last namespace tool, we’ll summarize the concepts of namespaces in Python here as well. This chapter will also present some larger and more realistic classes than those we have seen so far, including a final example that ties together much of what we’ve learned about OOP.
Although the Python
statement may seem similar to tools in other OOP languages on the surface,
on closer inspection, it is quite different from what some programmers are
used to. For example, as in C++, the
class statement is Python’s main OOP tool, but
unlike in C++, Python’s
class is not a
declaration. Like a
class statement is an object builder, and an
implicit assignment—when run, it generates a class object, and stores a
reference to it in the name used in the header. Also, like a
statement is true executable code—your class doesn’t exist until Python
reaches and runs the
that defines it (typically while importing the module it is coded in, but
class is a compound statement, with a body of indented statements ...