In Python, an object is a fundamental building block of the language, representing a piece of data or an entity in a program. Python is an object-oriented programming (OOP) language, which means everything in Python—like numbers, strings, functions, classes, and even modules—is treated as an object.
Definition
An object in Python is an instance of a class, which is a blueprint for creating objects. Each object has the following key attributes:
Identity: A unique identifier (like an address in memory).
Type: The kind of object (e.g., int, str, list).
Value: The data or content stored in the object.
Key Concepts of Objects in Python
Everything is an Object
Even primitive data types like integers and strings are objects in Python.
python
Copy code
x = 10
print(type(x)) # <class ‘int’>
y = “Hello”
print(type(y)) # <class ‘str’>
Attributes and Methods
Objects can have attributes (variables) and methods (functions) associated with them.
python
Copy code
my_list = [1, 2, 3]
print(my_list.append(4)) # Append method modifies the object
Classes and Objects
Classes define the structure and behavior of objects.
An object is created from a class using the class constructor.
python
Copy code
class MyClass:
def __init__(self, name):
self.name = name
obj = MyClass(“Python Object”)
print(obj.name) # Python Object
Mutability and Immutability
Objects can be mutable (modifiable) or immutable (non-modifiable).
Mutable: list, dict, set
Immutable: int, str, tuple
python
Copy code
x = 10
x += 1 # A new object is created
print(id(x)) # ID changes for immutable types
my_list = [1, 2, 3]
my_list.append(4)
print(id(my_list)) # ID remains the same for mutable types
Dynamic Typing
Python objects are dynamically typed, meaning their types are determined at runtime and can change.
python
Copy code
x = 10 # `x` is an int object
x = “Text” # Now `x` is a str object
Summary
An object in Python is a core concept that represents a data entity. Objects are instances of classes and encapsulate both data (attributes) and behavior (methods). Understanding objects is crucial to leveraging Python’s capabilities as an object-oriented programming language.