2012-09-04 2 views
0

가변 문맥 수를 설정할 수 있도록 with 문을 포맷하는 방법이 있습니까? 마찬가지로 때로는 진술로 4 개를 원하지만 다른 때는 2 개만 원할 수도 있습니다. 그것이 그렇듯이, 나는 사용할 수있는 모든 객체의 더미 버전을 호출 할 것이라는 전망에 직면 해있다. 그런 다음 사용하지 않는 문장으로 채워지는 더미 객체로 문장을 16 개로 중첩한다. 이후 Python 2.6.6을 사용하고 있으며 압축 된 구문도 지원하지 않습니다.가변 문 개수 문

제쳐두고, 실제로 작동하는 정리 코드를 얻을 수있는 유일한 방법은 무엇입니까? 소멸자 메서드와 비슷한 것을 얻을 수있는 다른 방법은 없지만 표준 __del__ 메서드와 같은 실수는 아닙니다.

+1

어떤 언어? – driis

+0

죄송합니다, 파이썬. – Strill

+1

http://sscce.org/ ... –

답변

3

contextlib.nested을 만들었습니다. 문서에서

예 :

from contextlib import nested 

with nested(*managers): 
    do_something() 
+0

또한 A()를 a, B()를 b : suite 형태로 사용하는 것을 지적 할만한 가치가 있습니다. – Claudiu

+0

예,하지만 가변적 인 수의 컨텍스트에서는 작동하지 않으며 파이썬 2.6에서도 작동하지 않습니다. – dav1d

+0

with 문은 이제 다중 형식을 허용하기 때문에, 'contextlib.nested'는 OP가 요구하는 것을 수행하는 유일하고 가능한 (깨끗한) 방법 임에도 불구하고 Python 3.3에서 deprecated로 표시됩니다. – jsbueno