What is an object in Python
In Python, an object is an instance of a class. Everything in Python—whether it’s a number, a string, a list, a dictionary, or even a function—is an object.
What does an Object do in Python?
An object in Python is a container for holding both data (attributes) and behavior (methods). This is one of the basic constructs of Python programming.
Think of an object as a real-life entity. A car is an example of an object. It possesses:
- Attributes (Data): Just like its color, model, and brand.
- Behaviors (Methods): Such as acceleration, braking, and turning.
We define objects in Python using classes that serve as templates for the creation of objects.
Key Characteristics of Objects in Python
- Encapsulation:
- Objects combine data (attributes) and behavior (methods) into a single entity.
- Example:
class Car:
def __init__(self, brand, model, color):
self.brand = brand
self.model = model
self.color = color
def drive(self):
return f"The {self.color} {self.brand} {self.model} is driving."
# Create an object (instance) of the Car class
my_car = Car("Toyota", "Corolla", "Red")
# Access attributes and methods
print(my_car.brand) # Outputs: Toyota
print(my_car.drive()) # Outputs: The Red Toyota Corolla is driving.
2. Identity:
- Every object has a unique identity (like a memory address). This can be checked with the
id()
function. - Example:
obj1 = [1, 2, 3]
obj2 = [1, 2, 3]
print(id(obj1)) # Unique identifier for obj1
print(id(obj2)) # Unique identifier for obj2 (different from obj1)
3. Type:
- Objects have types that define their behavior. The
type()
function tells you the type of an object. - Example:
print(type(5)) # Outputs: <class 'int'>
print(type("Hello")) # Outputs: <class 'str'>
print(type([1, 2, 3])) # Outputs: <class 'list'>
4. Mutability:
- Some objects can be changed after they are created (mutable), while others cannot (immutable).
- Examples:
- Mutable:
list
,dict
,set
- Immutable:
int
,str
,tuple
- Mutable:
- Example:
# Mutable object (list)
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # Outputs: [1, 2, 3, 4]
# Immutable object (string)
my_string = "Jobbinge"
new_string = my_string.upper() # Creates a new string
print(new_string) # Outputs: JobbingeReal-World Analogy
print(my_string) # Outputs: Jobbinge (unchanged)
Components of an Object
- Attributes (Data):
- Attributes store information about the object. They are like variables that belong to an object.
- Example:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Alice", 30)
print(person1.name) # Outputs: Alice
print(person1.age) # Outputs: 30
2. Methods (Behaviors):
- Methods define the behavior of an object. They are functions that belong to a class and operate on its attributes.
- Example:
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says Woof!"
dog1 = Dog("Buddy")
print(dog1.bark()) # Outputs: Buddy says Woof!
How to Create and Use Objects
- Define a Class (Blueprint):
- A class is a template that describes the attributes and methods an object will have.
- Example:
class Phone:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def call(self, number):
return f"Calling {number} from {self.brand} {self.model}."
2. Create an Object (Instance):
- Use the class to create an object.
- Example:
my_phone = Phone("Apple", "iPhone 14")
print(my_phone.brand) # Outputs: Apple
print(my_phone.call("123-456-7890")) # Outputs: Calling 123-456-7890 from Apple iPhone 14.
Real-World Analogy
Think of a class as a blueprint for building objects.
- Blueprint: A house design plan (class).
- Object: A house built from that blueprint.
- Attributes: Number of rooms, color of walls, size of the garden (data about the house).
- Methods: Actions like opening a door, switching on the lights (behavior of the house).
For example, if a class represents a blueprint for a Car, then:
- Any object created from that class, say a Toyota Corolla or a Honda Civic, is an instance of that class.
- The cars can have varying attributes, such as brand, model, or color; however, they all share common behaviors, like drive and brake methods.
Why objects are important:
- Modularity: Objects organize data and behavior into reusable and independent components.
- Real-World Modeling: Objects enable you to model real-world entities in your code.
- Reusability: A class can be reused to provide several objects which perform similar work.
- Flexibility: Objects make modification and extension easier without affecting any other part of the code.