DEV Community

Cover image for Most intuitive blog on OOP
Atul Kushwaha
Atul Kushwaha

Posted on

Most intuitive blog on OOP

A Profound Introduction

Welcome to the most straightforward and intuitive blog on Object-Oriented Programming (OOP) that you'll ever find on dev.to. This blog series, Part #1, aims to provide you with a clear understanding of the subject.

Let's Begin

We'll start with a code block in Python:

l = [1, 2, 3, 4, 5]
print(l.upper())
Enter fullscreen mode Exit fullscreen mode

What do you think the output would be? Surprisingly, this will result in an error:

'list' object has no attribute 'upper'

Now, let's focus on two critical terms here: "object" and "attribute."

You might be wondering why the error refers to the list: l as an "object" when you have learned that a list is a datatype 🤔. Additionally, what does "attribute" mean? Let's explore further with another code block:

l = [1, 2, 3, "oops"]
print(type(l))
# Output: <class 'list'>
Enter fullscreen mode Exit fullscreen mode

Interesting, right? When we try to get the type of the list, it says "l belongs to the class 'list'." But what is a "class" exactly?

Moments ago, we saw that an error mentioned that 'list' was an object. Let's clarify this confusion.

Class, Object, and Attributes

Here's the moment of truth: every datatype you've encountered in Python is, in fact, a class.

What is a class?

You can think of a class as a blueprint, but what do I exactly mean by a blueprint? We'll soon find out.

So, every datatype is a class, and whenever we create a variable of a class (datatype), it is referred to as an object.

By the way, now that we know datatypes are classes, and since they were already present, datatypes are known as built-in classes. On the other hand, we have user-defined classes, which we'll explore in another blog.

Hence, if you try to print type(12), the output would be class <int>. And if you create an object of the class/datatype int:

n = 1234  # n is an object of datatype int
print(n.append(1))
Enter fullscreen mode Exit fullscreen mode

The above code will result in an error:

AttributeError: 'int' object has no attribute 'append'

This error informs us that the object we created n is referred to as an object of the int class/datatype.

In simpler terms, an object is an instance of a class.

We know that we can't append to an int, but why?

Because whoever created the class int or datatype int didn't add a functionality to do so. The functionality of an object, or the functions that we can perform on an object of a particular class, is called an attribute.

In the above code's output, you may see the error message:
AttributeError: 'int' object has no attribute 'append'

This indicates that the int object n here, of class int, doesn't have any functionality to append.

That's all for now! We'll cover more topics soon, so stay tuned, buddy!

Top comments (2)

Collapse
 
pazapp profile image
PaZapp

Thanks will keep looking out for your next posts

Collapse
 
coderatul profile image
Atul Kushwaha

Thanks for appreciating 🫂