Как отследить изменение атрибута класса python?
Каким образом можно отследить изменение атрибута класса и при нужном значении запускать функцию?
Пример кода
сlass Vehicle(object):
def __init__(self, color, doors):
self.color = color
self.doors = doors
def print():
if color == 'green':
print('color green')
пример поведения
car = Vehicle("blue", 5)
#ничего не печатается
car.color = 'green'
#выводиться color green
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
class Vehicle(object):
def __init__(self, color, doors):
self._color = color
self.doors = doors
def _print(self):
if self._color == 'green':
print('color green')
elif self._color == 'red':
print('color red')
@property
def color(self):
return self._color
@color.setter
def color(self, value):
self._color = value
self._print()
car = Vehicle("blue", 5)
car.color = 'green'
car.color = 'red'