10 Mar Python Encapsulation
Encapsulation in Python is the practice of restricting direct access to class attributes and methods, ensuring data security and controlled interaction. It’s achieved using access modifiers like public, protected, and private.
What is Encapsulation
- Definition: Encapsulation means bundling data (attributes) and methods (functions) inside a class and controlling access to them.
- Purpose:
- Protects sensitive data from accidental modification.
- Provides a controlled interface for interacting with objects.
- Improves modularity and maintainability of code.
Access Modifiers in Python
Python uses naming conventions to simulate access control. In Python, public, private, and protected modifiers are conventions (not enforced keywords) that control how class members are accessed. By default, everything is public, while protected and private are indicated using underscores.
Unlike languages like Java or C++, Python doesn’t have strict access control keywords. Instead, it uses naming conventions with underscores to signal intent.

Let us understand them one by one:
Public Modifiers
Definition: Accessible from anywhere in the program.
Default behavior: All attributes and methods are public unless otherwise specified.
Example:
class Student:
def __init__(self, name):
self.name = name # public
s = Student("Amit")
print(s.name) # ✅ Accessible
Output
Amit
Protected Modifiers
Definition: Intended for internal use within the class and its subclasses.
Convention: Prefix with a single underscore _.
Note: Still accessible from outside, but discouraged. Python doesn’t enforce strict access control like Java or C++. Instead, it relies on developer discipline. Protected members are meant for internal use within the class and its subclasses. Accessing them directly from outside breaks the abstraction and can lead to fragile code.
Example:
class Student:
def __init__(self, name):
self._name = name # protected
s = Student("Amit")
print(s._name) # ⚠️ Accessible, but not recommended
Output
Amit
Private Modifiers
Definition: Strongly restricted; meant to be used only inside the class.
Convention: Prefix with double underscores __.
Mechanism: Python performs name mangling (__var becomes _ClassName__var).
Example:
class Student:
def __init__(self, name):
self.__name = name # private
s = Student("Amit")
# print(s.__name) ❌ Error
print(s._Student__name) # ✅ Accessible via name mangling
Output
Amit
Why Encapsulation Matters
- Data Security: Prevents unauthorized access to sensitive information.
- Maintainability: Internal implementation can change without affecting external code.
- Abstraction: Hides unnecessary details from the user.
If you liked the tutorial, spread the word and share the link and our website, Studyopedia, with others.
For Videos, Join Our YouTube Channel: Join Now
Read More:
No Comments