with deyimi
- Python kursu
- Orta seviye
- Ders 106/116
- 5 dk
with deyiminin nasıl çalıştığını öğrenirsin.
with deyimi
with deyimi bir kaynağı açar, kullanır ve otomatik kapatır. Blok nasıl sonlanırsa sonlansın — hata dahil — kapatma her zaman çalışır:
with open("dosya.txt") as f:
içerik = f.read()
# f otomatik kapatıldıBurada open dosyayı açar; with bloğu bitince dosya otomatik kapanır. finally yazmaya gerek yoktur. Bu, kaynak sızıntısını önler.
Dosya, veritabanı bağlantısı ve kilit gibi kaynaklarda standarttır.
as ile kaynağa ad ver
with ... as kalıbı kaynağa bir ad verir. Bu ad blok içinde kullanılır:
with open("dosya.txt") as f:
print(f.read())Burada f dosya nesnesini tutar. Blok bitince f otomatik kapanır; f.close() çağrılmasına gerek yoktur. Bu kalıp dosya işlemlerinde en sık kullanılan yöntemdir ve kaynak sızıntısını önler.
Uygulama Basit context manager kullan
Kaynak sınıfı zaten tanımlı. with Kaynak(): bloğu içinde print("içeride") yaz.
Başlangıç kodu
class Kaynak:
def __enter__(self):
print("açtı")
return self
def __exit__(self, *args):
print("kapattı")
# with bloğu aç ve içeride yazÖrnek çözüm
with Kaynak():
print("içeride")Beklenen çıktı
açtı içeride kapattı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 with bloğu ne garantiler?
- Kod daha hızlı çalışır
- Hata fırlatılmaz
- Kaynak her zaman kapatılır Doğru cevap
- Değişkenler silinir
Açıklama: with bloğu hata olsa da kaynağı kapatır.
2 with deyimini tamamla
____ Kaynak():
print("içeride")
with Kaynak():
print("içeride")
Açıklama: with Kaynak() bir context manager'ı başlatır.
3 with kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
with |
Bloğu başlatır |
as |
Kaynağa ad verir |
__enter__ |
Açılış |
__exit__ |
Kapanış |