utils.py——get

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()里面实现的部分
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容