📎 Referral Code:
📊 Dashboard Sign In
Navigation
🗺️
Courses
🎬
Short Videos
💡
Pro Tip Videos
Job Support
🎯
Interview Board
👥
Chat Room
AI Tools
🌐
Project Explanation Agent
🛟
Support Works
Home
Python Data Types, Operators and OOPs concepts
Python Class Introduction
Python Data Types, Operators and OOPs concepts Python Class Introduction
Python Class Introduction
Python Data Types, Operators and OOPs concepts
.
Now Watching
Previous
← Previous
Python Function Design
Lesson Progress
Next →
Inheritance Class
Next
📄 View Reference Document & Notes

📋 Lesson Notes & Resources

🐍 Python Class – Full Explanation with Key Concepts

📘 What is a Python Class?

A class in Python is a blueprint for creating objects. It allows grouping of data (attributes) and behavior (methods) together to model real-world entities.

Think of a class as a design template. Objects are created based on this template, each with their own values.

🎯 Why Use Classes?

  • Encapsulate data and logic together.
  • Promotes code reuse through inheritance.
  • Helps organize and structure large applications.
  • Makes code modular, maintainable, and scalable.

🔑 Key Concepts of Python Classes

Concept Description Real-Time Example
Class Blueprint for an object class Car:
Object Instance of a class my_car = Car()
__init__() Constructor method Initialize attributes
self Refers to current object Used in all methods
Attribute Variable stored in object self.name
Method Function inside a class def greet(self):
Inheritance Use code from another class class Manager(Employee):
Encapsulation Hide internal details _salary, __bonus
Polymorphism Same method, different behavior calculate_salary() overridden

✅ Basic Python Class Example

class Employee:
    def __init__(self, name, role):
        self.name = name
        self.role = role

    def greet(self):
        return f"Hello, I am {self.name} and I work as a {self.role}"

# Creating object
emp = Employee("Sairam", "Data Engineer")
print(emp.greet())
Output:
Hello, I am Sairam and I work as a Data Engineer

🔁 Real-Time Scenario

Imagine building an employee management system. Each employee has a name, salary, and department. We want to give them raises and access info:

class Employee:
    def __init__(self, name, salary, dept):
        self.name = name
        self.salary = salary
        self.dept = dept

    def apply_raise(self, percent):
        self.salary += self.salary * (percent / 100)
        return self.salary

# Example usage
e1 = Employee("John", 50000, "IT")
print(e1.apply_raise(10))  # New salary: 55000

🧠 Summary of Class Features

Feature Explanation
__init__() Constructor for setting up data
self Represents current object
Methods Functions defined inside class
Object Created instance of class
Inheritance Child class can use Parent class methods
Encapsulation Hide data inside private variables
Polymorphism Reuse method name with different behavior
import boto3
import pandas as pd
import io

class S3ToS3:

    def __init__(self, aws_access_key_id, aws_secret_access_key, region_name,
                 source_bucket, source_key, destination_bucket, destination_key):

        self.aws_access_key_id = aws_access_key_id
        self.aws_secret_access_key = aws_secret_access_key
        self.region_name = region_name
        self.source_bucket = source_bucket
        self.source_key = source_key
        self.destination_bucket = destination_bucket
        self.destination_key = destination_key

        self.s3_client = boto3.client('s3',
                                 aws_access_key_id=self.aws_access_key_id,
                                 aws_secret_access_key=self.aws_secret_access_key,
                                 region_name=self.region_name)
        self.df = None


    def read_data_from_s3(self):
        response = self.s3_client.get_object(Bucket=self.source_bucket, Key=self.source_key)
        content = response['Body'].read().decode('utf-8')
        self.df = pd.read_csv(io.StringIO(content))

    def tranform_data(self):
        self.df = self.df[['employee_id', 'name']]

    def load_to_s3(self):
        csv_buffer = io.StringIO()
        self.df.to_csv(csv_buffer, index=False)
        self.s3_client.put_object(Bucket=self.destination_bucket, Key=self.destination_key, Body=csv_buffer.getvalue())


if __name__ == '__main__':

    obj = S3ToS3(aws_access_key_id, aws_secret_access_key, region_name, source_bucket,
                  source_key, destination_bucket, destination_key)

    print(obj.source_key)
    obj.read_data_from_s3()
    obj.tranform_data()
    obj.load_to_s3()
Course Content
7 lessons