我有一个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包装器也是如此。这也可以通过不同的方式实现(类Meta,受损的属性名称等等)但我只是想在做这样的事情时知道普遍的共识。
答案 0 :(得分:1)
当您只是直接存储对callables的引用时,不要存储您必须查找的名称。任何具有__call__
方法的类的函数,方法或实例都是一个对象,可以存储在expired
属性中。