🎛 Getter & Setter

Last Updated: 06 Sept 2025


  • Private variables (__var) cannot be accessed directly.
  • To safely read (get) or modify (set) them, we use getter and setter methods.
  • In Python, we use the @property decorator for this.

Hinglish Tip 🗣: Private locker hai → direct access nahi. Getter = "puchh ke dekhna", Setter = "puchh ke update karna".


✏ Getter

class Student:
    def __init__(self, name, age):
        self.__name = name    # private
        self.__age = age      # private

    @property
    def age(self):   # getter
        return self.__age

s = Student("Amit", 20)
print(s.age)  # ✅ Access via getter, not direct variable

✏ Setter

class Student:
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    @property
    def age(self):   # getter
        return self.__age

    @age.setter
    def age(self, value):   # setter
        if value > 0:
            self.__age = value
        else:
            print("Age must be positive")

s = Student("Neha", 22)

print(s.age)   # ✅ 22 (getter)
s.age = 25     # ✅ setter updates value
print(s.age)   # ✅ 25
s.age = -5     # ❌ Invalid update

💡 Quick Practice