Appendix C. Advanced Python Concepts

In this appendix, we’re taking a closer look at the following three topics: classes and objects, time-zone-aware datetime objects, and mutable vs. immutable objects. The topics are independent of each other, so you may read them in any order.

Classes and Objects

In this section, we will write our own class to get a better understanding of how classes and objects are related. Classes define new types of objects: a class behaves like a springform you use to bake a cake. Depending on the ingredients you use, you get a different cake, for example, a chocolate cake or a cheesecake. The process of getting a cake (the object) out of the springform (the class) is called instantiation, which is why objects are also called class instances. Whether chocolate or cheesecake, they are both a type of cake: classes allow you to define new data types that keep related data (attributes) and functions (methods) together and therefore help you to structure and organize your code. Let me now return to the car racing game example from Chapter 3 to define our own class:

In [1]: class Car:
            def __init__(self, color, speed=0):
                self.color = color
                self.speed = speed

            def accelerate(self, mph):
                self.speed += mph

This is a simple car class with two methods. Methods are functions that are part of a class definition. This class has one regular method called accelerate. This method will change the data (speed) of an instance of this class. It also has a special method that ...

Get Python for Excel 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.