Class and Instance Example
In this lesson, let's explore the relationship between Class and Instance (or object) using a "bank account" as an example.
The code below defines a 'BankAccount' class and shows how to create multiple account instances to manage each account's unique attributes and behaviors.
Class Description
The BankAccount class represents a bank account and includes the following attributes and methods:
-
Attributes:
owner,balance -
Methods:
deposit,withdraw,display_balance
The (__init__) is a constructor method called when an account instance is created from the class, setting the account object’s owner and initial balance.
The balance has a default value of 0 (balance=0).
class BankAccount:
# Constructor method
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance
# Deposit method
def deposit(self, amount):
self.balance += amount
print(f"{amount} has been deposited.")
# Withdraw method
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
print(f"{amount} has been withdrawn.")
else:
print("Insufficient balance.")
# Balance inquiry method
def display_balance(self):
print(f"Account balance: {self.balance}")
Class Usage Example
Below is an example of using the BankAccount class to create account instances account1 and account2, and performing deposit, withdrawal, and balance inquiry for each account.
# Instance creation
account1 = BankAccount("CodeFriends", 1000)
account2 = BankAccount("GeekHouse", 2000)
# Depositing, withdrawing, and checking balance for account1
account1.deposit(500)
# 500 has been deposited.
account1.withdraw(200)
# 200 has been withdrawn.
account1.display_balance()
# Account balance: 1300
# Depositing, withdrawing, and checking balance for account2
account2.deposit(1000)
# 1000 has been deposited.
account2.withdraw(500)
# 500 has been withdrawn.
account2.display_balance()
# Account balance: 2500
Each account (account1, account2) is an instance of the BankAccount class, having independent attributes (owner, balance) and methods (deposit, withdraw, display_balance).
Instances created from a class maintain their own data, and even when using the same methods, each instance can produce different results.
For example, calling the display_balance method on the account results in a balance of 1300, while calling the same method on account2 results in a balance of 1500.
What is the self keyword?
In Python, the self keyword refers to the current instance within a class method.
When defining a method within a class, the first parameter is self, allowing the method to refer to the current instance.
The self keyword serves two primary roles:
-
Accessing Instance Attributes:
selfis used to access and modify the attributes of the current instance within a method. For example,self.balancerefers to thebalanceattribute of the current instance. -
Method Calls:
selfis used to call other methods within the same instance. For example,self.deposit(amount)calls thedepositmethod within the same instance.
Want to learn more?
Join CodeFriends Plus membership or enroll in a course to start your journey.