свой порт zmq
objects = {'a':{},'b':{},'c':{}}
ports = {'a':5556,'b':5557,'c':5558}
for obj_name in objects:
context = zmq.Context()
zmq_socket = context.socket(zmq.DEALER)
zmq_socket.connect("tcp://localhost:%s" % ports[obj_name])
objects[obj_name]['zmq_socket'] = zmq_socket
# После распределения портов, почему-то у всех объектов одинаковый последний порт (5558)
# Как так получается? я каждую итерацию переопределяю zmq_socket, но в словаре же ссылка на старый должна сохраняться?
если это важно перешёл с Python 2.7 на 3.7, на 2.7 вроде работало как ожидалось
мб context.socket(zmq.DEALER) возвращает всегда один и тот же объект?
Вообщем проблема оказалось в том что словарь создавал вот так: objects = dict.fromkeys(['a','b','c'], {}) каждый ключ ссылался на один и тот же адрес памяти
Обсуждают сегодня