Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
@property | Encapsulation
In-Depth Python OOP
course content

Course Content

In-Depth Python OOP

In-Depth Python OOP

1. OOP Concepts
2. Inheritance
3. Encapsulation
4. Polymorphism and Abstraction
5. Magic Methods

book@property

@property is a decorator that modifies the method inside a class to the class property.

To create the property, you should create a method with the @property decorator above.

123456789101112131415
class CinemaHall: def __init__(self, rows, seats_in_row): self.rows = rows self.seats_in_row = seats_in_row @property def capacity(self): return self.rows * self.seats_in_row hall = CinemaHall(24, 12) print(hall.capacity) hall.rows = 5 hall.seats_in_row = 11 print(hall.capacity)
copy

In the example above, you can see a cinema hall that has attributes rows and seats_in_row. The capacity property returns the total number of seats in the hall. It wouldn't make sense to create a separate attribute capacity because if we change the number of rows, we would have conflicting values. Specifically, no actions are performed with the class; only one of the hall's properties is returned.

Properties should have a specific logic: they should return a certain attribute of the class, unlike methods that are used to perform specific actions with the class.

How to define a new property?

How to define a new property?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 3. Chapter 7
some-alt