Pola Pengelola Konteks Praktis
Terapkan pengelola konteks pada file, kunci, pewaktu, dan koneksi DB.
Pola Pengelola Konteks Praktis adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 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
Alur Pemrosesan Berkas
import io
src = io.StringIO('line1\nline2\nline3')
dst = io.StringIO()
with src, dst:
for line in src:
dst.write(line.upper())
print(dst.getvalue())Transaksi Basis Data
from contextlib import contextmanager
@contextmanager
def db_transaction(conn):
try:
yield conn
print('COMMIT')
except Exception as e:
print(f'ROLLBACK: {e}')
raise
finally:
print('CLOSE')
with db_transaction({'execute': lambda q: print(f'SQL: {q}')}) as db:
db['execute']('INSERT ...')Kunci Thread
import threading
lock = threading.Lock()
shared = []
def add(x):
with lock:
shared.append(x)
add(1); add(2)
print(shared)Mengubah Direktori
from contextlib import contextmanager
import os
@contextmanager
def chdir(path):
old = os.getcwd()
os.chdir(path)
try: yield
finally: os.chdir(old)
original = os.getcwd()
with chdir('/tmp'):
print('in tmp:', os.getcwd())
print('back:', os.getcwd())Berkas Sementara
import tempfile
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=True) as f:
f.write('temp data')
print('temp file:', f.name)
print('deleted')Penyesuaian Variabel Lingkungan
from contextlib import contextmanager
import os
@contextmanager
def env(**kwargs):
old = {k: os.environ.get(k) for k in kwargs}
os.environ.update({k:str(v) for k,v in kwargs.items()})
try: yield
finally:
for k,v in old.items():
if v is None: os.environ.pop(k,None)
else: os.environ[k]=v
with env(DEBUG='1', LOG_LEVEL='DEBUG'):
print(os.environ['DEBUG'])Blok Pembuatan Profil
from contextlib import contextmanager
import cProfile
@contextmanager
def profile():
pr = cProfile.Profile()
pr.enable()
yield pr
pr.disable()
with profile() as pr:
sum(range(1000000))
print('profiled')Soket Jaringan
import socket
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(0.1)
print('socket ready')
except Exception as e:
print(f'socket: {e}')Menangkap Peringatan
import warnings
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')
warnings.warn('test warning')
print(len(w), w[0].category.__name__)Menggabungkan Pola
from contextlib import contextmanager
import time
@contextmanager
def timed_operation(name):
print(f'[{name}] start')
t0 = time.perf_counter()
try:
yield
print(f'[{name}] done in {time.perf_counter()-t0:.4f}s')
except Exception as e:
print(f'[{name}] failed: {e}')
raise
with timed_operation('loop'):
sum(range(100000))Pemeriksaan Singkat
Ringkasan
Lanjutkan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Pengelola Konteks Praktis” gratis?
Ya — teks lengkap “Pola Pengelola Konteks Praktis” 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 “Pola Pengelola Konteks Praktis”?
Terapkan pengelola konteks pada file, kunci, pewaktu, dan koneksi DB. 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 4 dari 4.
Berapa lama pelajaran “Pola Pengelola Konteks Praktis” 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