タイマークラスへのフックを備えたmongoラッパーがあります。基本的に、コレクションが更新または保存されるたびにタイマーが生成され、タイマーが期限切れになると特定の関数が実行されます。私の質問は、これらの関数を指定する Pythonic の方法は何でしょうか? 私の考えは、次のようにコレクションラッパーに単純に追加することでした:
class TestCollection(Collection):
__name__ = 'test_collection'
__database__ = 'test'
__primary_key__ = 'field_1'
post_delete = 'call_this_func_with_getattr_after_delete'
expire = 'also_call_this_with_getattr_when_timer_expires'
field_1 = Key()
field_2 = Key()
field_3 = Key()
次に、タイマー クラスにロジックを追加して、有効期限が切れたときに指定された関数を実行し、mongo ラッパーについても同じようにします。これは、さまざまな方法で実現することもできます (クラス メタ、マングルされた属性名など)。