Codecademy and the online textbook present object-oriented programming techniques that are founded on the concept of objects, which package together data, in the form of attributes, and actions, in the form of methods. Since the Tetris project relies on these techniques, perhaps we should discuss them.
In our programming exercises, up until now, we have used various types of objects, including integers, floats, strings, lists, and dictionaries. In Python, we can define classes to create new types of objects. The following Codecademy units present an introduction to classes.
Classes are also introduced in Chapters 12 to 16 of How to Think Like a Computer Scientist. Here, we can discuss the content of the Codecademy exercises, the online book, and other aspects of object oriented programming.
Following is a slightly modified version of code from a Codecademy exercise on classes that creates a
Point3D class to represent points in 3D space …
class Point3D(object): # a point in 3D space def __init__(self, x, y, z): # initialize a new Point3D object self.x = x self.y = y self.z = z def __repr__(self): # define a string representation of a Point3D object return "(%d, %d, %d)" % (self.x, self.y, self.z) # create two Point3D objects my_point = Point3D(1, 2, 3) your_point = Point3D(9, 8, 7) # print the string representation of the two Point3D objects print my_point print your_point
(1, 2, 3) (9, 8, 7)
Having defined a
Point3D class, as above, we could conveniently create
Point3D objects, and print string representations of their coordinates for output.