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 versus immutable objects. The topics are independent of one another, 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 blueprint you use to build a car. Depending on the specifications you use, you get a different car—for example, a blue car or a red car. The process of getting a car (the object) from the blueprint (the class) is called instantiation, which is why objects are also called class instances. Classes allow you to define new data types that keep related data (attributes) and functions (methods) together and therefore help you structure and organize your code. Let’s now define a Car class by using a data class. You turn a regular class into a data class with the @dataclass decorator. Data classes make it easier to write classes by taking care of boilerplate code that you would have to write with regular classes:
In[1]:fromdataclassesimportdataclass
In[2]:@dataclassclassCar:# Data classes require type hints for attributescolor:strspeed:int=0defaccelerate(self,speed_increase):self.speed+=speed_increase
This is a simple car class with two attributes (color and speed) and one method (accelerate ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access