utils.py——get

2019-04-26  本文已影响0人  归侠与客
class Get(object):
    """
    Lazy value calculate for object
    对象的延迟值计算
    """

    def __init__(self, getter):
        self.getter = getter

    def __get__(self, instance, owner):
        return self.getter()

kwargs[name] = utils.Get(lambda name=name: connect_message_queue(name, kwargs.get('message_queue'), kwargs['queue_maxsize']))

param = utils.Get(connect_message_queue(name, k1, k2))
connect_message_queue(): 返回Queue
utils.Get()的作用是,在具体用到param时才去执行connect_message_queue()里实现的那部分代码

kwargs[name] = utils.Get(lambda name=name: connect_message_queue(
                name, kwargs.get('message_queue'), kwargs['queue_maxsize']))

ctx.obj = utils.ObjectDict(ctx.obj or {})
ctx.obj['instances'] = []
ctx.obj.update(kwargs)

g = ctx.obj
name = 'status_queue'
app.config['queues'][name] = getattr(g, name, None)

=>  ctx.obj['status_queue']  # 在这一部分才执行connect_message_queue()里面实现的部分
上一篇 下一篇

猜你喜欢

热点阅读