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

@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)

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.

question mark

How to define a new property?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

@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)

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.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 7
some-alt