Инструментарий
- это процесс присоединения атрибутов к классу, которые реализованы как Дескрипторы Python (эта ссылка упоминается в этом предложении), так что любой атрибут получает, устанавливает или удаляет операцию, то есть:
# __get__
print myobject.someattribute
# __set__
myobject.someattribute = "foo"
# __del__
del myoject.someattribute
... будет вызывать код Python для каждого события, а не использовать поведение Python по умолчанию для прямого доступа к myobject.__dict__
.SQLAlchemy использует эти ловушки для обеспечения поведения, такого как отложенная загрузка , а также для записи изменений значения атрибута с целью реализации шаблона единицы работы ,где только те элементы, которые изменились, свернуты в операторы UPDATE, которые будут отправлены в базу данных при сбросе.