Encapsulation and Data Hiding

Intermediate PythonOOPFree Lesson

Advertisement

Introduction

Encapsulation restricts access to certain attributes to protect data integrity.

Access Modifiers

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # Private (name mangling)
        self._protected = 0       # Protected (convention)
        self.public = 0           # Public
    
    def get_balance(self):
        return self.__balance
    
    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount
            return True
        return False
    
    def withdraw(self, amount):
        if 0 < amount <= self.__balance:
            self.__balance -= amount
            return True
        return False

Property Decorators

class Temperature:
    def __init__(self, celsius):
        self._celsius = celsius
    
    @property
    def celsius(self):
        return self._celsius
    
    @celsius.setter
    def celsius(self, value):
        self._celsius = value
    
    @property
    def fahrenheit(self):
        return (self._celsius * 9/5) + 32
    
    @fahrenheit.setter
    def fahrenheit(self, value):
        self._celsius = (value - 32) * 5/9

Practice Problems

  1. Create a class with private attributes
  2. Implement getters and setters
  3. Use @property decorator
  4. Create read-only properties
  5. Validate data in setter methods

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement