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
Output …
(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.