我正在将列表的单个元素传递给函数。我想修改该元素,因此,列表本身
def ModList(element):
element = 'TWO'
l = list();
l.append('one')
l.append('two')
l.append('three')
print l
ModList(l[1])
print l
Run Code Online (Sandbox Code Playgroud)
但是此方法不会修改列表。就像元素正在作为值传递一样。输出为:
['一二三']
['一二三']
我希望函数调用后列表的第二个元素为“ TWO”:['one','TWO','three']
这可能吗?
先感谢您
我使用 Kafka 2.12 和 kafka-python 模块作为 Kafka 客户端。我正在尝试测试一个简单的生产者:
class Producer(Process):
daemon = True
def run(self):
producer = KafkaProducer(bootstrap_servers='kafka:9092')
print("Sending messages...")
producer.send('topic', json.dumps(message).encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
当这个过程被实例化时,消费者永远不会收到消息
如果我刷新生产者并更改 linger_ms 参数(使其同步),则消息将由消费者发送和读取:
class Producer(Process):
daemon = True
def run(self):
producer = KafkaProducer(bootstrap_servers='kafka:9092', linger_ms=10)
print("Sending messages...")
producer.send('topic', json.dumps(message).encode('utf-8'))
producer.flush()
Run Code Online (Sandbox Code Playgroud)
在之前的 Kafka 版本中,有参数 queue.buffering.max.ms 来指定生产者将等待多长时间才能将消息发送到队列中,但在最新版本(kafka-python 1.3.3)中不存在。我如何在较新的 Kafka 版本中指定它以保持我的通信异步?
谢谢!