Pernyataan with secara Mendalam
Pahami cara kerja with dan alasan pernyataan ini mencegah kebocoran sumber daya.
Pernyataan with secara Mendalam adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Pendahuluan
Penggunaan Dasar with
with open('/tmp/cm_test.txt','w') as f:
f.write('hello')
print('file closed:', f.closed)Mengapa with Ada
# Without with:
# f = open('f.txt')
# try: ...
# finally: f.close()
# With with:
# with open('f.txt') as f: ...
print('with is cleaner')Beberapa Pengelola Konteks
import tempfile, os
a = tempfile.mktemp(); b = tempfile.mktemp()
with open(a,'w') as fa, open(b,'w') as fb:
fa.write('A'); fb.write('B')
os.unlink(a); os.unlink(b)
print('both closed')with Tidak Menyembunyikan Pengecualian
try:
with open('/nonexistent.txt') as f:
pass
except FileNotFoundError as e:
print('caught:', e)Lock sebagai Pengelola Konteks
import threading
lock = threading.Lock()
with lock:
print('locked section')
print('lock released')Pola Koneksi Basis Data
# Typical DB pattern:
# with db.transaction() as conn:
# conn.execute(sql)
# commits on success, rolls back on exception
print('db pattern demo')Pernyataan with Bertingkat
import tempfile
tmp = tempfile.mktemp()
with open(tmp,'w') as outer:
with open(tmp,'r+') as inner:
outer.write('x')
import os; os.unlink(tmp)
print('nested exit order')contextlib.suppress
from contextlib import suppress
with suppress(FileNotFoundError):
open('/does/not/exist.txt')
print('no error raised')contextlib.redirect_stdout
from contextlib import redirect_stdout
import io
buf = io.StringIO()
with redirect_stdout(buf):
print('captured')
print('got:', buf.getvalue())ExitStack
from contextlib import ExitStack
import tempfile, os
with ExitStack() as stack:
files = [stack.enter_context(open(tempfile.mktemp(),'w')) for _ in range(3)]
for f in files: f.write('x')
print('all closed')Pemeriksaan Singkat
Ringkasan
Lanjutkan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pernyataan with secara Mendalam” gratis?
Ya — teks lengkap “Pernyataan with secara Mendalam” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pernyataan with secara Mendalam”?
Pahami cara kerja with dan alasan pernyataan ini mencegah kebocoran sumber daya. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Pernyataan with secara Mendalam” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pernyataan with secara Mendalam
- Protokol __enter__ dan __exit__
- contextlib: @contextmanager
- Pola Pengelola Konteks Praktis