1

我有一个带有计时器类挂钩的 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 包装器也是如此。这也可以通过不同的方式来实现(元类、损坏的属性名称等),但我只是想知道在做这样的事情时的普遍共识。

4

1 回答 1

1

当您直接存储对可调用对象的引用时,不要存储您必须查找的名称。任何函数、方法或具有__call__方法的类的实例,与其他任何事物一样都是对象,并且可以存储在您的expired属性中。

于 2012-10-28T21:16:22.980 回答