Temizleme deseni eksik (ARCH2082)
Anahtar python.performance.dispose-pattern · Önem warning · Kategori performance
Kapatılabilir bir kaynağa sahip sınıf, sahip olduğu kaynağı serbest bırakacak bir close veya bağlam yöneticisi sunmazsa kaynak hiç kapatılmaz. Temizleme sözleşmesini uygulayın.
Hatalı
Bölüm başlığı “Hatalı”class Exporter: def __init__(self, path): self.file = open(path, "w")
def write(self, row): self.file.write(row)class Exporter: def __init__(self, path): self.file = open(path, "w")
def write(self, row): self.file.write(row)
def __enter__(self): return self
def __exit__(self, *exc): self.file.close()Düzeltme
Bölüm başlığı “Düzeltme”Kaynak sahibi sınıfa __enter__/__exit__ veya close ekleyerek sahip olunan tutamaçları serbest bırakın.