什么是SQLAlchemy上下文中的“工具”?

时间:2012-03-14 00:54:50

标签: python sqlalchemy

SQLAlchemy's tutorial中,它提到了“仪器”,但似乎没有正确定义仪器是什么:

  

这些类属性作为Python描述符和define存在   映射类的检测。此工具的功能包括触发更改事件,跟踪修改和自动执行的功能   在需要时从数据库加载新数据。

在这种背景下,什么是仪器?

1 个答案:

答案 0 :(得分:7)

instrumentation是将属性附加到类的过程,它实现为Python Descriptors(该句子中提到此链接),以便任何属性获取,设置或删除操作,即:

# __get__
print myobject.someattribute

# __set__
myobject.someattribute = "foo"

# __del__
del myoject.someattribute

...将为每个事件调用Python代码,而不是使用Python直接访问/操作myobject.__dict__的默认行为。 SQLAlchemy利用这些钩子来提供诸如lazy loading之类的行为,以及记录属性值何时发生变化,以实现unit of work模式,其中只有那些已更改的元素被转换为UPDATE语句,以便在刷新时发送到数据库。