6th Session: Introduction to Object Oriented Programming with Python

Software development and System Architecture Bootcamp

Things we will cover in the next few sessions

  • Python class(Object oriented programming, inheritance)
  • Working with virtual environments and requirements files
  • Python standard libraries/modules
  • request, math,os, glob, argparse, datetime, random
  • use dir() function to see the methods available in a module
  • Introduction to API

Introduction to Object-oriented programming

  • Everything is an Object
  • Object-oriented programming is a programming paradigm that provides a means of structuring programs so that properties and behaviors are bundled into individual objects
  • For instance, an object could represent a Person with properties (attributes) like a name, age, and address and behaviors (methods) such as walking, talking, breathing, and running.

Classes

  • A class is a blueprint used to create individual objects
  • An object is a collection of data (variables) and methods (functions) that act on those data. It is an an encapsulation of variables and functions into a single entity.
  • Classes define functions called methods, which identify the behaviors and actions that an object created from the class can perform with its data. E.g A car class specifies that a model and a year are necessary for defining a car but it doesn’t contain the model or year of any specific car
  • While the class is the blueprint, an instance is an object that is built from a class and contains real data. An instance of a dog class would be an actual car with a model of Nissan Micra and a year of 2021
# Creating a new Car class with an .__init__() method 
# that creates .model and .year attributes:
class Car:
    def __init__(self, model, year):
        self.model = model
        self.year = year

# Instantiating an Object
class Car:
    pass 
# This creates a new Car class with no attributes or methods.

# To pass arguments to the model and year parameters
nissan = Car("Micra", 2020)
ford = Car("Fiesta", 2009)
# This creates two new Car instances (Objects)

# After you create the Car instances, 
# you can access their instance attributes using dot notation:
nissan.model
# Output 'Micra'

nissan.year
# Output '2020'

Components of a Class

💡 Every Class contains Attributes and Methods

-- Attributes (or state) are the characteristics of the class that help to distinguish it from other classes. eg person’s name, height

-- Behaviors (or methods) are the tasks that an object performs eg walk, sit, eat

Another example of Class Construction

# Create the instance attributes fullname and email in the Employee class. Given a person's first and last names:

# Form the fullname by simply joining the first and last name together, separated by a space.
# Form the email by joining the first and last name together with a . in between, and follow it with @company.com at the end. Make sure the entire email is in lowercase.
# Examples
# emp_1 = Employee("John", "Smith")
# emp_2 = Employee("Mary",  "Sue")
# emp_3 = Employee("Antony", "Walker")

# emp_1.fullname ➞ "John Smith"
# emp_2.email ➞ "mary.sue@company.com"
# emp_3.firstname ➞ "Antony"

# Notes
# The attributes firstname and lastname are already made for you.

# Creating a class called Employee
class Employee:
    # Initialising the class with attributes of firstname and lastname 
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    # Creating a method that uses the class Employee and returns the first name + last name 
    def full_names(self):
        return self.first_name + " " + self.last_name

    # Creating a method that uses the class Employee and returns the first name + last name + String 
    def email(self):
        return self.first_name.lower() + "." + self.last_name.lower() + "@company.com"

# Creating an instance of the class Employee with arguments firstname and lastname 
employee_1 = Employee("John", "Smith")

print(employee_1.full_names())
print(employee_1.email())

# John Smith
# john.smith@company.com

Did you find this article valuable?

Support Blessing Aliu by becoming a sponsor. Any amount is appreciated!