Programmer-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 and y.
- 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 more complicated than the other options, but it has advantages that will be apparent soon.
A programmer-defined type is also called a class. A class definition looks like this:
class Point: """Represents a point in 2-D space."""
The header indicates that the new class is called Point. The body is a docstring that explains what the class is for
Defining a class named Point creates a class object.
>>> Point <class '__main__.Point'>
Because Point is defined at the top level, its "full name" is __main__.Point.
The class object is like a factory for creating objects. To create a Point, you call Point as if it were a function.
>>> blank = Point() >>> blank <__main__.Point object at 0xb7e9d3ac>
The return value is a reference to a Point object, which we assign to blank.
Creating a new object is called instantiation, and the object is an instance of the class.
Exercises
Exercises
Create a class named Hen
Create a hen and assign it to hen1
Print hen1
ⓘ