假设您有三个对象通过上下文管理器获取,例如锁、数据库连接和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