How does the @property decorator work in Python?

16    Asked by JamesBuckland in Python , Asked on Sep 11, 2025

How does the @property decorator in Python work, and why is it useful in object-oriented programming? Learn how it helps create cleaner, more readable code by managing getters and setters seamlessly.

Answered by Harper Rogers

The @property decorator in Python is a powerful feature that allows you to manage class attributes in a clean and Pythonic way. Instead of writing separate getter and setter methods, you can use @property to make method calls look like regular attribute access. This makes your code both readable and maintainable.

Here’s how it works:

Basic usage with @property

 class Student:
    def __init__(self, name):
        self._name = name
    @property
    def name(self):
        return self._name

 Now, instead of calling student.name(), you can simply write student.name.

Adding a setter with @name.setter

    @name.setter

    def name(self, value):
        if not value:
            raise ValueError("Name cannot be empty")
        self._name = value

 This allows you to assign values like student.name = "John" while still adding validation logic.

Adding a deleter with @name.deleter

    @name.deleter
    def name(self):
        del self._name

 Key benefits of @property:

  • Makes code cleaner by hiding method calls behind attribute access.
  • Provides encapsulation without changing how attributes are accessed.
  • Allows validation or extra logic when getting/setting values.

In short, the @property decorator is a neat way to implement getters and setters while keeping your Python code elegant and user-friendly.



Your Answer

Interviews

Parent Categories