Предположим, у вас есть три объекта, которые вы получаете через диспетчер контекста, например, блокировку, соединение с базой данных и 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
Если ответ «нет», то это потому, что необходимость в такой функции подразумевает плохой дизайн, или, может быть, я должен предложить ее в качестве напоминания? :-П