컨텍스트 관리자를 통해 획득 한 세 개의 개체 (예 : 잠금, db 연결 및 ip 소켓)가 있다고 가정합니다. 다음과 같은 방법으로 그들을 얻을 수 있습니다 :python : 여러 컨텍스트 관리자에서 "with"블록을 만듭니다.
with lock:
with db_con:
with socket:
#do stuff
그러나 하나 개의 블록에 그것을 할 수있는 방법은 무엇입니까? 대답은 "아니오"이다
a=[lock1, lock2, lock3, db_con1, socket, db_con2]
with a as res:
#now all objects in array are acquired
경우 : 또한
with lock,db_con,socket:
#do stuff
같은, 그것은 가능하며, 상황에 맞는 관리자가 개체의 알 수없는 길이의 배열을 지정해, 어떻게 든 할 수 있습니다 그러한 기능에 대한 필요성이 나쁜 디자인을 암시했기 때문에 또는 어쩌면 내가 한 덩어리로 제안해야 할 것인가? :-P
[문 '과'파이썬에서 여러 변수]의 중복 가능성 (http://stackoverflow.com/questions/893333/multiple-variables-in-python-with-statement) : 여기에 그 같은 모습이다 –