Python
Intermediate
What is Python Property?
A built-in decorator that lets you define methods that behave like attributes, enabling controlled access to instance data.
The @property decorator creates managed attributes with getter, setter, and deleter methods while maintaining attribute-style access syntax. This enables validation (rejecting invalid values), computed properties (calculating values on access), lazy evaluation, and maintaining backward compatibility when refactoring public attributes. Properties follow the Uniform Access Principle — users cannot distinguish between stored and computed attributes. Example: @property def full_name(self) returns first + last name, while @name.setter validates input. Properties are Pythonic alternative to Java-style getXxx/setXxx methods.