Sobes.tech
Junior — Middle

What is the built-in property() mechanism in Python and what is it used for?

sobes.tech AI

Answer from AI

The built-in property() mechanism in Python allows creating managed class attributes that look like regular fields but invoke special methods (getters, setters, deleters) when accessed.

This is convenient for controlling access to data, validation, or computing values during read/write.

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)  # calls getter
p.name = 'Peter'  # calls setter

Here, name is a property that manages access to the private attribute _name.