我在varnish 4中使用varnish API。它生成日志项的方式是对其进行调度,并传入回调。简单版本:
class vlog(object):
def __init__(self):
self.body = []
def callback(self, vap, cbd, priv):
self.body.append(cbd)
def main(self):
self.vlog = varnishapi.VarnishLog(sopath="libvarnishapi.so")
while True:
ret = self.vlog.Dispatch(self.callback)
if ret == 0:
time.sleep(0.1)
我还需要在自我回调适当地聚合数据,但不管怎样。在
我真正的问题是:如何将上述类转换为生成器?我的理想用法是:
^{pr2}$简单地在回调函数中放一个'yield'语句永远不会触发迭代。(令我吃惊的是,添加yield语句也会导致我所有的打印语句也不会产生输出。。。我显然漏掉了一些东西。)
你想让你的类成为可编辑的。生成器是实现iterable的一种方法,但使类iterable不是必需的。在
您可以实现
__iter__
方法;如果将其作为生成器函数,则不需要其他任何东西:相关问题 更多 >
编程相关推荐