2012-03-14 12 views
4

、それは「計装」を言及しているが、適切にどのような機器を定義するためには表示されませんされています。これらのクラス属性は、Pythonの記述子として存在し、マッピングされたクラスの 計装を定義SQLAlchemyのコンテキストで「計測」とは何ですか? <a href="http://docs.sqlalchemy.org/en/latest/orm/tutorial.html" rel="nofollow">SQLAlchemy's tutorial</a>で

。この計測器の機能には、変更イベントを発生させ、変更を追跡し、必要に応じてデータベースから新しいデータを自動的にロードする機能が含まれます。

この文脈では計器とは何ですか?

+0

計器イベントについて同じ質問をしていましたか?http://docs.sqlalchemy.org/en/rel_0_9/orm/events.html#module-sqlalchemy.orm.instrumentationしかし、グーグルリングは、キーワードが非常に一般的であるため、有用な結果をもたらしませんでした。この質問をお寄せいただきありがとうございます! – Devy

答えて

6

計装は、(このリンクは、その文に記載されている)Python Descriptorsとして実装されているクラスに属性を取り付ける工程である、そのような任意の属性は、設定され得る、または操作を削除すること、それは次のようになります。

# __get__ 
print myobject.someattribute 

# __set__ 
myobject.someattribute = "foo" 

# __del__ 
del myoject.someattribute 

...は、myobject.__dict__に直接アクセス/操作するPythonのデフォルト動作を使用するのではなく、各イベントに対してPythonコードを呼び出します。 SQLAlchemyはのような振る舞いを提供し、unit of workパターンを実装する目的で、属性の値が変更されたときに記録するようにこれらのフックを利用します。変更された要素のみが放出されるUPDATE文にロールインされますフラッシュ時にデータベースに転送します。

関連する問題