@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.
123456789101112131415class 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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Stel mij vragen over dit onderwerp
Vat dit hoofdstuk samen
Toon voorbeelden uit de praktijk
Awesome!
Completion rate improved to 2.78
@property
Veeg om het menu te tonen
@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.
123456789101112131415class 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.
Bedankt voor je feedback!