Sobes.tech
Junior — Middle

Have you used the @property decorator in your Python projects?

sobes.tech AI

Answer from AI

The @property decorator in Python is used to create class properties that appear as regular attributes but internally hide methods for getting, setting, and deleting values. This allows controlling access to data and adding logic when accessing attributes.

Example:

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self._name

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

p = Person("Ivan")
print(p.name)  # Ivan
p.name = "Peter"  # triggers setter
# p.name = ""  # raises ValueError

Thus, @property helps make the class interface more convenient and safe.