[Python OOP Cheat Sheet] A Simple Overview of Object-Oriented Programming

Q: What’s the object-oriented way to become wealthy?
A: Inheritance.
?

Your vocabulary determines the reality of your life.

In this tutorial, I have compiled the most essential terms and concepts of object-oriented programming in Python. My goal was to create the best Python OOP cheat sheet that shows them in one place.

Well — here it is:

Download only this cheat sheet as PDF

Want to get more printable PDF cheat sheets like the following one?

Python Cheat Sheet Classes

Join my free email series with cheat sheets, free Python lessons, and continuous improvement in Python! It’s fun! πŸ™‚

So let’s study the code!

class Dog:

    # class attribute
    is_hairy = True

    # constructor
    def __init__(self, name):
        # instance attribute
        self.name = name

    # method
    def bark(self):
        print("Wuff")


bello = Dog("bello")
paris = Dog("paris")

print(bello.name)
"bello"

print(paris.name)
"paris"


class Cat:

    # method overloading    
    def miau(self, times=1):
        print("miau " * times)

fifi = Cat()

fifi.miau()
"miau "

fifi.miau(5)
"miau miau miau miau miau "

# Dynamic attribute
fifi.likes = "mice"
print(fifi.likes)
"mice"

# Inheritance
class Persian_Cat(Cat):
    classification = "Persian"

mimi = Persian_Cat()
print(mimi.miau(3))
"miau miau miau "


print(mimi.classification)

Let’s dive into the Vocabulary!

OOP Terminology in Python

Class: A blueprint to create objects. It defines the data (attributes) and functionality (methods) of the objects. You can access both attributes and methods via the dot notation.

Object (=instance): A piece of encapsulated data with functionality in your Python program that is built according to a class definition. Often, an object corresponds to a thing in the real world. An example is the object Obama that is created according to the class definition Person. An object consists of an arbitrary number of attributes and methods, encapsulated within a single unit.

Instantiation: The process of creating an object of a class.

Method: A subset of the overall functionality of an object. The method is defined similarly to a function (using the keyword def) in the class definition. An object can have an arbitrary number of methods.

Method overloading: You may want to define a method in a way so that there are multiple options to call it. For example for class X, you define a method f(…) that can be called in three ways: f(a), f(a,b), or f(a,b,c). To this end, you can define the method with default parameters (e.g., f(a, b=None, c=None)).

Attribute: A variable defined for a class (class attribute) or for an object (instance attribute). You use attributes to package data into enclosed units (class or instance).

Class attribute (=class variable, static variable, static attribute): A variable that is created statically in the class definition and that is shared by all class objects.

Dynamic attribute: An “–>instance attribute” that is defined dynamically during the execution of the program and that is not defined within any method. For example, you can simply add a new attribute neew to any object o by calling o.neew = ... .

Instance attribute (=instance variable): A variable that holds data that belongs only to a single instance. Other instances do not share this variable (in contrast to “–>class attributes”). In most cases, you create an instance attribute x in the constructor when creating the instance itself using the self keywords (e.g., self.x = ... ).

Inheritance: Class A can inherit certain characteristics (like attributes or methods) from class B. For example, the class Dog may inherit the attribute number_of_legs from the class Animal. In this case, you would define the inherited class Dog as follows: class Dog(Animal): ...

Encapsulation: Binding together data and functionality that manipulates the data.

If you have understood these OOP terms, you can follow most of the discussions about object-oriented programming. That’s the first step towards proficiency in Python!

Automate Your Learning Progress in Python

Thanks for reading that far—you’re clearly ambitious in mastering the Python programming language.

For your convenience, I have created a Python cheat sheet email series where you will get tons of free stuff (cheat sheets, PDFs, lessons, code contests). Join 151,756 subscribers. It’s fun!


Leave a Comment