Değiştirilebilir global durum (ARCH2187)
Anahtar python.quality.mutable-global-state · Önem warning · Kategori quality
Modül düzeyinde değiştirilebilir global durum gizli bağımlılıklar yaratır, eşzamanlı erişimde güvensizdir ve testleri kırılgan hale getirir. Durumu fonksiyon veya sınıf içine kapsülleyin.
Hatalı
Bölüm başlığı “Hatalı”cache = {}
def get(key): if key not in cache: cache[key] = load(key) return cache[key]class Repository: def __init__(self): self._cache = {}
def get(self, key): if key not in self._cache: self._cache[key] = load(key) return self._cache[key]Düzeltme
Bölüm başlığı “Düzeltme”Değiştirilebilir durumu bir sınıf örneğine kapsülleyin ve açıkça enjekte edin.