KafkaConsumer课程用法?

时间:2016-12-20 17:58:46

标签: python apache-kafka

我正在学习KafkaConsumer并在第3行提出问题

1.from kafka import KafkaConsumer
2.consumer = KafkaConsumer(arglist)
3.for message in consumer

我知道“for ... in ...”声明。这个for循环用于解析集合的元素。所以这里的消费者对象可以是一个集合?我抬头看着https://github.com/dpkp/kafka-python。但是在KafkaConsume实现中没有“集合”的东西

1 个答案:

答案 0 :(得分:2)

在python中,只要它实现/定义__iter__方法,就可以迭代一个对象。这不仅限于收藏!以下是有关如何创建可迭代对象的基本示例:

class SimpleExample():

    def __iter__(self):
        i = 0
        while i < 10:
            yield i*2 
            i+=1


se = SimpleExample()
for i in se:
    print(i)

这将打印0 2 4 6 8 10 12 14 16 18并退出循环。

回到kafka消费者,SimpleConsumersimple.py, line 346中定义了这样一种方法。这就是为什么你可以使用for .. in语法。