🧠 with 문이란?
▶️ 정의
리소스를 열고 자동으로 닫아주는 문법
블록(Context)을 벗어나면 알아서 정리/해제(clean-up) 해주는 구조
예:
- 파일 열고 → 읽고 → 자동으로 닫기
- DB 연결 열고 → 쿼리 날리고 → 자동 종료
- Streamlit 폼 열고 → 입력 받고 → 자동 제출 처리
📦 기본 사용 예제
✅ 예시 1: 파일 열기
f = open("data.txt", "r")
try:
content = f.read()
finally:
f.close() # 항상 닫힘
💡 with 문은 try-finally를 간단하게 쓰는 방식이에요!
💡 왜 쓰는가?
장점설명
| 🔐 안전함 | 에러가 나도 자동으로 리소스를 닫아줌 |
| 🧼 깔끔함 | 코드 구조가 간결하고 명확 |
| ✅ 예외 처리 | 오류가 나도 뒤처리를 자동으로 함 |
| 💡 선언형 | "무엇을 하고 싶은지"에 집중 가능 |
🧾 Streamlit 예제에서의 with
with st.form("signup_form"):
name = st.text_input("이름")
email = st.text_input("이메일")
submitted = st.form_submit_button("가입하기")
이 구조는 어떤 의미?
- st.form("signup_form") 블록 안에서 UI 요소들을 정의
- 이 form은 버튼을 눌러야 제출(submit) 되도록 구성됨
- with 문이 끝나는 순간, 내부 구성은 하나의 폼으로 묶이고 처리됨
일반 방식 (즉시 실행됨)
name = st.text_input("이름")
with st.form 사용
→ 버튼을 눌러야 값이 반영됨! (폼 제출 구조)
결론
| with 문 | 어떤 리소스를 열고, 블록 끝나면 자동으로 정리/닫는 문법 |
| 주요 사용처 | 파일 I/O, DB 연결, 락 처리, Streamlit 폼 등 |
| Streamlit | with st.form → 한 번에 UI 구성 + 제출 버튼 제어 |
| 핵심장점 | 에러 방지, 리소스 정리 자동화, 코드 간결화 |
'파이썬 기초' 카테고리의 다른 글
| 쉬운 API 3종 연습 & 파이썬 사용법 (1) | 2025.04.26 |
|---|---|
| Microsoft Learn: 가능성을 꽃피우는 디지털 학습 정원 (1) | 2025.04.26 |
| API 개념과 한국주식API 제공기관과 사용법 (1) | 2025.04.26 |
| 변수 종류와 변수 선언 방법 (4) | 2025.04.19 |