| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
Welcome to this detailed tutorial on Python constructors, brought to you by codeswithpankaj.com. In this tutorial, we will explore the concept of constructors in Python, focusing on how they are defined, used, and their significance in object-oriented programming. By the end of this tutorial, you will have a solid understanding of how to utilize constructors effectively in your Python classes.
Constructors are special methods in Python that are called when an object is instantiated. They are used to initialize the object's state, setting up initial values for the object's attributes.
Constructors are essential for:
The __init__ method in Python is the constructor method. It is automatically called when a new object of the class is created. The __init__ method can take arguments to customize the object's creation.
class ClassName:
def __init__(self, parameters):
# Initialization codeclass Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Creating an object
person1 = Person("John", 25)
print(person1.name, person1.age) # Output: John 25In this example, the __init__ method initializes the name and age attributes for the Person class.
A default constructor is a constructor that does not take any arguments except self. If no constructor is explicitly defined, Python provides a default constructor.
class Person:
def __init__(self):
self.name = "Unknown"
self.age = 0
# Creating an object
person1 = Person()
print(person1.name, person1.age) # Output: Unknown 0In this example, the __init__ method sets default values for the name and age attributes.
A parameterized constructor is a constructor that takes arguments to initialize the object's attributes with specific values provided during object creation.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Creating objects with different initial values
person1 = Person("John", 25)
person2 = Person("Jane", 30)
print(person1.name, person1.age) # Output: John 25
print(person2.name, person2.age) # Output: Jane 30In this example, the __init__ method takes name and age as arguments and initializes the corresponding attributes for each object.
class BankAccount:
def __init__(self, account_number, balance=0):
self.account_number = account_number
self.balance = balance
def deposit(self, amount):
self.balance += amount
print(f"Deposited ${amount}. New balance: ${self.balance}")
def withdraw(self, amount):
if amount > self.balance:
print("Insufficient funds")
else:
self.balance -= amount
print(f"Withdrew ${amount}. New balance: ${self.balance}")
# Creating an object with initial balance
account = BankAccount("12345678", 1000)
account.deposit(500) # Output: Deposited $500. New balance: $1500
account.withdraw(200) # Output: Withdrew $200. New balance: $1300
account.withdraw(2000) # Output: Insufficient fundsclass Car:
def __init__(self, make="Unknown", model="Unknown", year=0):
self.make = make
self.model = model
self.year = year
self.odometer = 0
def drive(self, miles):
self.odometer += miles
print(f"Drove {miles} miles. Total miles: {self.odometer}")
def display_info(self):
print(f"{self.year} {self.make} {self.model}, Odometer: {self.odometer} miles")
# Creating objects with different initial values
car1 = Car("Toyota", "Corolla", 2020)
car2 = Car("Honda", "Civic", 2019)
car3 = Car() # Using default values
car1.drive(100) # Output: Drove 100 miles. Total miles: 100
car1.display_info() # Output: 2020 Toyota Corolla, Odometer: 100 miles
car2.drive(200) # Output: Drove 200 miles. Total miles: 200
car2.display_info() # Output: 2019 Honda Civic, Odometer: 200 miles
car3.drive(50) # Output: Drove 50 miles. Total miles: 50
car3.display_info() # Output: 0 Unknown Unknown, Odometer: 50 milesclass Person:
"""
A class to represent a person.
Attributes:
name: str
The name of the person.
age: int
The age of the person.
"""
def __init__(self, name="Unknown", age=0):
"""
Constructs all the necessary attributes for the person object.
Parameters:
name: str
The name of the person.
age: int
The age of the person.
"""
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")In this example, the Person class has a docstring that describes the class and its attributes. The __init__ method also has a docstring that explains the parameters.
This concludes our detailed tutorial on Python constructors. We hope you found this tutorial helpful and informative. For more tutorials and resources, visit codeswithpankaj.com. Happy coding!
| Back | FazBrowse Home | New Git URL |