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()里面实现的部分