İçeriğe geç

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.

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]

Değiştirilebilir durumu bir sınıf örneğine kapsülleyin ve açıkça enjekte edin.