Chapter 15. Classes and Objects
Code examples from this chapter are available from http://thinkpython.com/code/Point1.py; solutions to the exercises are available from http://thinkpython.com/code/Point1_soln.py.
User-Defined Types
We have used many of Python’s built-in types; now we are
going to define a new type. As an example, we will create a type called
Point
that represents a point in
two-dimensional space.
In mathematical notation, points are often written in parentheses with a comma separating the coordinates. For example, (0,0) represents the origin, and (x,y) represents the point x units to the right and y units up from the origin.
There are several ways we might represent points in Python:
We could store the coordinates separately in two variables,
x
andy
.We could store the coordinates as elements in a list or tuple.
We could create a new type to represent points as objects.
Creating a new type is (a little) more complicated than the other options, but it has advantages that will be apparent soon.
A user-defined type is also called a class. A class definition looks like this:
class
Point
(
object
):
"""Represents a point in 2-D space."""
This header indicates that the new class is a Point
, which is a kind of object
, which is a built-in type.
The body is a docstring that explains what the class is for. You can define variables and functions inside a class definition, but we will get back to that later.
Defining a class named Point
creates a class object.
>>> print Point <class '__main__.Point'> ...
Get Think 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.