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.
Lessons in this chapter Β· Basics of Object-Oriented Programming - Classes, Instances, Attributes, Methods
- 1. Introduction to Object-Oriented Programming (OOP)
- 2. Everything About Python - What is an Object?
- 3. Relationship Between Class and Instance
- 4. How to Declare a Class in Python
- 5. What is a Class Constructor?
- 6. The Relationship Between Classes and Methods
- 7. Multiple-choice quiz
- 8. Inheritance of Class Attributes and Methods
- 9. How to Bundle Attributes and Methods with Encapsulation
- 10. Adding Flexibility to Objects with Polymorphism
- 11. Coding Quiz - Creating a Car Class
- 12. Multiple-choice quiz
- 13. Fill-in-the-blank quiz
Which of the following is the most appropriate word to fill in the blank?
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help