Предположим, у вас есть три объекта, которые вы приобретаете с помощью диспетчера контекстов, например, блокировка, соединение db и ip-сокет. Вы можете приобрести их:
with lock:
with db_con:
with socket:
#do stuff
Но есть ли способ сделать это в одном блоке? что-то вроде
with lock,db_con,socket:
#do stuff
Кроме того, возможно ли, учитывая массив неизвестной длины объектов с контекстными менеджерами, можно как-то это сделать:
a=[lock1, lock2, lock3, db_con1, socket, db_con2]
with a as res:
#now all objects in array are acquired
Если ответ "нет", это потому, что потребность в такой функции подразумевает плохой дизайн, или, может быть, я должен предложить его в pep?:-P