47.17 with as에서 괄호 사용하기
지금까지 with as를 사용하면서 클래스(컨텍스트 매니저)를 여러 줄로 표현할 때 불편함이 많았습니다. 예를 들어 다음과 같이 한 줄로 표현된 코드를 여러 줄로 표현하려면 \(역슬래시)를 활용해야 했습니다.
with open("a.txt", 'w') as a, open("b.txt", 'w') as b, open("c.txt", 'w') as c: pass
즉, 다음과 같이 ,(콤마) 뒤에 \(역슬래시)를 붙여서 줄 바꿈을 해주는 방식입니다.
with open("a.txt", 'w') as a, \ open("b.txt", 'w') as b, \ open("c.txt", 'w') as c: pass
파이썬 3.10부터 with as의 컨텍스트 매니저에 괄호를 사용하는 것이 공식적으로 허용됩니다.
with as 컨텍스트 매니저의 괄호는 3.10 이상부터 사용 가능
with (클래스1() as 변수1, 클래스2() as 변수2): 코드
앞에서 설명한 한 줄 짜리 with as 코드는
with open("a.txt", 'w') as a, open("b.txt", 'w') as b, open("c.txt", 'w') as c: pass
다음과 같이 컨텍스트 매니저 부분을 괄호로 묶을 수 있습니다.
with (open("a.txt", 'w') as a, open("b.txt", 'w') as b, open("c.txt", 'w') as c): pass
이제 이렇게 괄호로 묶어준 코드는 \(역슬래시) 없이 여러 줄로 표현할 수 있습니다.
with (open("a.txt", 'w') as a, open("b.txt", 'w') as b, open("c.txt", 'w') as c): pass