The Four Principles of Object Oriented Programming in Python

terrythreatt

Terry Threatt

Posted on November 12, 2020

The Four Principles of Object Oriented Programming in Python

Object-oriented or OOP we shall call it is one of several different programming paradigms used in order to structure your code in a way that is easier to follow. It receives its name by defining objects you can interface within your Python programs.

Objects

Objects purposely represent real-world objects or things like a cat or dog. Python objects have a collection of related properties or behaviors like meow() or bark().

Classes

OOP in Python is class-based and your objects will be defined with the class keyword like the example below:

class Cat:
    pass 
Enter fullscreen mode Exit fullscreen mode

Principle 1 - Abstraction

Abstraction is the concept of hiding all the implementation of your class away from anything outside of the class.

class Dog:

    def __init__(self, name):
        self.name = name 
        print(self.name + " was adopted.")

    def bark(self):
        print("woof!")


# we don't care how it works just bark
spot = Dog("spot") #=> spot was adopted. 
spot.bark() #=> woof! 
Enter fullscreen mode Exit fullscreen mode

Principle 2 - Inheritance

Inheritance is the mechanism for creating a child class that can inherit behavior and properties from a parent(derived) class.

class Animal:

    def __init__(self, name):
        self.name = name 
        print(self.name + " was adopted.")

    def run(self):
        print("running!")


class Dog(Animal):

    def __init__(self):
        super().init 

    def bark(self):
        print("woof!")


# new dog behavior inherited from Animal parent class 
spot = Dog("spot") #=> spot was adopted. 
spot.run() #=> running! 
Enter fullscreen mode Exit fullscreen mode

Principle 3 - Encapsulation

Encapsulation is the method of keeping all the state, variables, and methods private unless declared to be public.

class Fish:

    def __init__(self):
        self.__size = "big"

    def get_size(self):
        print("I'm a " + self.__size + " fish")

    def set_size(self, new_size):
        self.__size = new_size 

# using the getter method
oscar = Fish()
oscar.get_size()  #=> I'm a big fish

# change the size 
bert = Fish()
bert.__size = "small" 
bert.get_size() #=> I'm a big fish

# using setter method
fin = Fish()
fin.set_size("tiny")
fin.get_size() #=> I'm a tiny fish
Enter fullscreen mode Exit fullscreen mode

Principle 4 - Polymorphism

Polymorphism is a way of interfacing with objects and receiving different forms or results.

class Animal:

    def __init__(self, name):
        self.name = name 
        print(self.name + " was adopted.")

    def run(self):
        print("running!")


class Turtle(Animal):

    def __init__(self):
        super().init 

    def run(self):
        print("running slowly!")


# we get back an interesting response 
tim = Turtle("tim") #=> tim was adopted. 
tim.run() #=> running slowly!
Enter fullscreen mode Exit fullscreen mode

Farewell

So now you a great deal about how object-oriented in Python works. If you enjoyed this post feel free to leave a comment about your experience with object-oriented programming.

Happy Coding,
Terry Threatt

💖 💪 🙅 🚩
terrythreatt
Terry Threatt

Posted on November 12, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related