반응형
파이썬에서 한 줄에 여러 개의 'with' 문이 중첩된 'with' 문과 같은가요?
이 두 진술서가 동등한가요?
with A() as a, B() as b:
# do something
with A() as a:
with B() as b:
# do something
및 변경 글로벌 변수(여기서는 텐서플로) 모두 에 의해 변경된 사항에 따라 달라지기 때문에 요청합니다. 그래서 두 번째 양식은 사용해도 안전한 것으로 알고 있습니다만, 첫 번째 양식으로 단축하는 것과 동등한가요?
예, 한 줄에 여러 개의 문을 나열하는 것은 다음과 같이 중첩하는 것과 동일합니다:
두 개 이상의 항목이 있는 경우 컨텍스트 관리자는 여러 개의 문이 중첩된 것처럼 처리됩니다:
with A() as a, B() as b: suite
와 동등하다
with A() as a: with B() as b: suite
유사한 언어가 에 표시됩니다.
3.10+용 업데이트
버전 3.10에서 변경됨: 그룹화 괄호를 사용하여 문을 여러 줄로 구분할 수 있습니다.
with ( A() as a, B() as b, ): SUITE
완전히 똑같네요. 개인적인 취향에 따라 달라요.
다른 사람들이 말했듯이, 그것은 같은 결과이다. 다음은 이 구문을 사용하는 방법에 대한 자세한 예입니다:
blah.txt
1
2
3
4
5
한 파일을 열고 다른 파일에 내용을 간단하게 쓸 수 있습니다:
with open('blah.txt', 'r') as infile, open('foo.txt', 'w+') as outfile:
for line in infile:
outfile.write(str(line))
이제 다음을 포함합니다:
1
2
3
4
5
< python 3.9를 사용하는 사용자의 경우, 그룹화 괄호를 사용하는 것만큼 좋아 보이지는 않지만, 를 사용하여 여러 줄로 분할할 수 있습니다.
with A() as a, \
B() as b, \
C() as c:
suite
반응형
'개발하자' 카테고리의 다른 글
Terraform은 계획을 수행할 때 'Error: Variables not allowed'를 출력합니다 (0) | 2023.06.30 |
---|---|
(DRIVER_NOT_Found', "'Teradata'용 드라이버를 찾을 수 없습니다. 사용 가능한 드라이버:) - 테라데이터 모듈이 있는 아나콘다-주피터 노트북 사용 (0) | 2023.06.29 |
Python을 사용하여 Outlook 이메일을 역순으로 검토하는 방법 (0) | 2023.06.28 |
쿠베르네테스의 HPA와 ReplicaSet는 어떤 관계인가요? (0) | 2023.06.27 |
잘못된 for_each 인수로 테라폼 실패 / 지정된 "for_each" 인수 값이 적합하지 않습니다 (0) | 2023.06.27 |