Lesson 3
Setting Course with Constructors: Understanding the __init__ Method in Python
Lesson Overview and Plan

Welcome! Today's mission involves learning about constructors in Python, specifically focusing on the __init__ method. Constructors define the initial state of Python objects, much in the same way that a spacecraft is prepared for launch. In this lesson, we will learn about constructors, create them using the __init__ method, work with multiple objects, and understand their importance.

Introduction to Constructors

Put simply, a constructor prepares an object when it is initially created. Python works with constructors through the __init__ method.

The __init__ method sets the initialization process in motion for Python objects. You can visualize this with the following Spaceship class:

Python
1class Spaceship: 2 def __init__(self): 3 self.destination = "Mars" 4 self.speed = 50000 # speed in mph 5 6spaceship = Spaceship() # this calls the constructor 7print(spaceship.destination) # Prints: "Mars" 8print(spaceship.speed) # Prints: 50000

In this class, __init__ establishes destination and speed for a Spaceship, which doesn't require any additional input.

Creating a Constructor with __init__

The __init__ method is called automatically when an object is constructed. Upon invocation, self refers to the newly created object:

Python
1class Rocket: 2 def __init__(self, name, destination): 3 self.name = name 4 self.destination = destination 5 6rocket = Rocket("Apollo", "Moon") # Creates a rocket calling the constructor 7print(rocket.name) # Prints: "Apollo" 8print(rocket.destination) # Prints: "Moon"

In this example, a Rocket named "Apollo" with a destination of "Moon" is created using __init__.

Working with Multiple Objects

The __init__ method assigns unique information to each object. Here's how it works:

Python
1rocket1 = Rocket("Apollo", "Moon") 2rocket2 = Rocket("Curiosity", "Mars") 3rocket3 = Rocket("Voyager", "Jupiter") 4 5print(rocket1.name, rocket1.destination) # Prints: Apollo, Moon 6print(rocket2.name, rocket2.destination) # Prints: Curiosity, Mars 7print(rocket3.name, rocket3.destination) # Prints: Voyager, Jupiter

Each rocket possesses distinct attributes, demonstrating the power of __init__.

Constructors automate the initialization process, ensuring uniform attributes across all objects. They enhance coding efficiency and reduce the risk of errors in your code.

Lesson Summary

In this lesson, we learned about Python constructors and the __init__ method. We gained experience in creating classes and objects and understanding their unique attributes.

The next stage will include practical challenges to reinforce your newly acquired knowledge. So, prepare yourself for hands-on work!

Enjoy this lesson? Now it's time to practice with Cosmo!
Practice is how you turn knowledge into actual skills.