Python __init__() Method
The __init__() Method
All classes have a built-in method called __init__()
, which is always executed when the class is being initiated.
The __init__()
method is used to assign values to object properties, or to perform operations that are necessary when the object is being created.
Example
Create a class named Person, use the __init__()
method to assign values for name and age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1.name)
print(p1.age)
Try it Yourself »
Note: The __init__()
method is called automatically every time the class is being used to create a new object.
Why Use __init__()?
Without the __init__()
method, you would need to set properties manually for each object:
Example
Create a class without __init__()
:
class Person:
pass
p1 = Person()
p1.name = "Tobias"
p1.age = 25
print(p1.name)
print(p1.age)
Try it Yourself »
Using __init__()
makes it easier to create objects with initial values:
Example
With __init__()
, you can set initial values when creating the object:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Linus", 28)
print(p1.name)
print(p1.age)
Try it Yourself »
Default Values in __init__()
You can also set default values for parameters in the __init__()
method:
Example
Set a default value for the age parameter:
class Person:
def __init__(self, name, age=18):
self.name = name
self.age = age
p1 = Person("Emil")
p2 = Person("Tobias", 25)
print(p1.name, p1.age)
print(p2.name, p2.age)
Try it Yourself »
Multiple Parameters
The __init__()
method can have as many parameters as you need:
Example
Create a Person class with multiple parameters:
class Person:
def __init__(self, name, age, city, country):
self.name = name
self.age = age
self.city = city
self.country = country
p1 = Person("Linus", 30, "Oslo", "Norway")
print(p1.name)
print(p1.age)
print(p1.city)
print(p1.country)
Try it Yourself »