What is object?

What is object in Python?
 What is an Object in Python? A Detailed Explanation with Examples

In Python, everything is an object. Whether it’s a number, string, list, function, or even a module, all of these are objects in Python. Understanding what objects are and how they work is a fundamental concept in Python programming.


What is an Object?

An object is a collection of data (variables) and methods (functions) that operate on the data. In Python, when you create a variable or a data structure, Python automatically creates an object. Each object has an identity, a type, and a value.

  • Identity: Every object in Python has a unique identity, which can be viewed using the id() function.
  • Type: Every object in Python has a type, which is defined by the class of the object.
  • Value: The value of the object is the actual data it contains.

How Objects Are Created in Python?

Objects in Python are created when a class is defined. A class is a blueprint for creating objects. When you create an instance of a class, an object is created.

For example, let’s say we want to create a Person object:


# Defining a class
class Person:
    def __init__(self, name, age):
        self.name = name  # Instance variable
        self.age = age    # Instance variable

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

# Creating an object
person1 = Person("PythonBeeTelugu", 25)

# Accessing attributes and methods of the object
print(person1.name)  # Accessing instance variable
person1.greet()      # Calling method

In the above example:

  1. Person is a class.
  2. person1 is an object (an instance of the Person class).
  3. self.name and self.age are instance variables, holding data specific to person1.

The __init__() method is a special method called the constructor. It initializes the object's attributes.


What is a Class?

A class is a blueprint for creating objects. It defines the structure and behavior that the objects of that class will have. While objects are instances of a class, the class itself is a template.


class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def speak(self):
        print(f"{self.name} says: Hello!")

# Creating objects of the Animal class
dog = Animal("Rex", "Dog")
cat = Animal("Whiskers", "Cat")

dog.speak()  # Output: Rex says: Hello!
cat.speak()  # Output: Whiskers says: Hello!

Here:

  • Animal is the class.
  • dog and cat are objects of the class Animal.

Object Attributes and Methods

  1. Attributes: These are the variables that hold data for an object. Each object can have its own set of attributes.

class Car:
    def __init__(self, brand, model):
        self.brand = brand  # Attribute
        self.model = model  # Attribute

car1 = Car("Toyota", "Camry")
car2 = Car("Honda", "Civic")

print(car1.brand)  # Output: Toyota
print(car2.model)  # Output: Civic

In this example, brand and model are attributes of the Car objects.

  1. Methods: These are functions that are defined inside the class and perform operations using the object's attributes.

class Calculator:
    def add(self, a, b):
        return a + b

calc = Calculator()
result = calc.add(10, 20)
print(result)  # Output: 30

Here, add() is a method that performs addition on two numbers.


Methods for Object Interaction

  • __str__(): This method is used to define how the object should be represented as a string.

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def __str__(self):
        return f"'{self.title}' by {self.author}"

book1 = Book("Python Programming", "PythonBeeTelugu")
print(book1)  # Output: 'Python Programming' by PythonBeeTelugu

Object Identity and id() Function

In Python, each object has a unique identity, which can be accessed using the id() function. This ID is constant for the lifetime of the object.


a = 10
b = 10

print(id(a))  # ID of object 'a'
print(id(b))  # ID of object 'b'

Object Comparison

You can compare objects using == to check if their values are the same, and is to check if two objects refer to the same instance.

  
x = 5
y = 5
z = x

print(x == y)  # True, as values are the same
print(x is y)  # True, as they refer to the same object
print(x is z)  # True, both are the same object
  

Conclusion

In Python, objects are the central components around which everything revolves. Understanding objects, their attributes, and their methods is crucial for writing efficient and organized code. Classes allow you to create your own objects with customized attributes and behaviors.

With these basic concepts, you are now ready to dive deeper into Python's object-oriented programming (OOP) features!

Comments