Defining classes

Class definitions are introduced by the class keyword followed by the class name. By convention, new class names in Python use camel case – sometimes known as Pascal case – with an initial capital letter for each and every component word, without separating underscores. Since classes are a bit awkward to define at the REPL, we'll be using a Python module file to hold the class definitions
we use in this chapter.

Let's start with the very simplest class, to which we'll progressively add features. In our example we'll model a passenger aircraft flight between two airports by putting this code into airtravel.py:

"""Model for aircraft flights."""


class Flight:
pass

The class statement introduces a new block, so we indent on the next line. Empty blocks aren't allowed, so the simplest possible class needs at least a do-nothing pass statement to be syntactically admissible.

Just as with def for defining functions, class is a statement that can occur anywhere in a program and which binds a class definition to a class name. When the top-level code in the airtravel module is executed, the class will be defined.

We can now import our new class into the REPL and try it out.

>>> from airtravel import Flight

The thing we've just imported is the class object. Everything is an object in Python, and classes are no exception.

>>> Flight
<class 'airtravel.Flight'>

To use this class to mint a new object, we must call its constructor, which is done by calling the class, as we would a function. The constructor returns a new object, which here we assign to a name f:

>>> f = Flight()

If we use the type() function to request the type of f, we get airtravel.Flight:

>>> type(f)
<class 'airtravel.Flight'>

The type of f literally is the class.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset