Jul 9, 2024
property decorator allows defining a method as a property.getter method: To read the attribute.setter method: To write the attribute.deleter method: To delete the attribute.def __init__(self, width, height):
self._width = width
self._height = height
rectangle = Rectangle(3, 4)
print(rectangle.width) # Access width attribute
print(rectangle.height) # Access height attribute
_ to make them private:
self._width = width
self._height = height
@property decorator:
@property
def width(self):
return f"{self._width:.1f} cm"
@property
def height(self):
return f"{self._height:.1f} cm"
attribute_name.setter decorator:
@width.setter
def width(self, new_width):
if new_width > 0:
self._width = new_width
else:
print("Width must be greater than zero")
@height.setter
def height(self, new_height):
if new_height > 0:
self._height = new_height
else:
print("Height must be greater than zero")
attribute_name.deleter decorator:
@width.deleter
def width(self):
del self._width
print("Width has been deleted")
@height.deleter
def height(self):
del self._height
print("Height has been deleted")
@property) allows methods to be accessed as attributes.