You’ll learn about the Python property decorator in this lesson, which is a pythonic approach to using getters and setters in object-oriented programming.
The @property
decorator is a built-in decorator in Python that allows you to define properties without having to call the inbuilt function property()
.
Which returns a class’s property attributes from the getter, setter, and deleter parameters.
Getters: In Object-Oriented Programming (OOPS), these are the methods that allow you to access a class’s private attributes.
Setters: These are the methods that are utilized in the OOPS feature to set the value of private attributes in a class.

Here is a simple example of setting and getting properties in python.
## python property decorator example
class ClassName:
def __init__(self, val):
self.__name = val
# getter method to get the properties using an object
def get_name(self):
return self.__name
# setter method to set the value 'name' using an object
def set_name(self, val):
self.__name = val
There are three methods in the above ClassName (example).
- __init__ Initialize a class’s attributes or properties.
- __name:- It is a private attribute.
- get_name: This function retrieves the values of the private attribute name.
- set_name: Set the value of the name variable using a class object.
In Python, you can’t directly access the private variables. That’s why you included the getter method in your code.
Here is how the above example is interactive
## python property decorator example
## creating an object
obj = ClassName("Jhon")
## getting the value of 'name' using get_name() method
print(obj.get_name())
#Jhon
## setting a new value to the 'name' using set_name() method
obj.set_name("Doe")
print(obj.get_name())
#Doe
This is how you can implement the private attributes, getters, and setters in Python.
Let’s look at how to use the @property
decorator to implement the above class.
## python property decorator example
class ClassName:
def __init__(self, val):
self.name = val
@property
def name(self):
return self.__name
@name.setter
def name(self, val):
self.__name = val
We use the @property
to get the value of a private attribute without using any getter methods
In front of the method where we return the private variable, we must add a decorator @property
.
We use the @method_name.setter in front of the method to set the value of the private variable. It must be used as a setter.
To hide the setter and getter methods and make them private is quite simple in python.
Here is how you can do it.
## python property decorator example
def __get_name(self):
return self.__name
def __set_name(self, val):
self.__name = val
Youtube – The python property decorator
You’ve learned how to use Python to construct encapsulation and the differences between setter, getter, and property.