Bu KESİNLİKLE ikinci sınıf bir soru ise özür dilerim, ancak en iyi uygulamaların ne olduğunu merak ediyorum ve Google'da iyi bir cevap bulamıyorum.
Python, genellikle boş bir sınıfı bir süper-catchall veri yapısı kapsayıcı (JSON dosyası gibi bir tür) olarak kullanın ve yol boyunca öznitelikleri ekleyin:
class DataObj:
"Catch-all data object"
def __init__(self):
pass
def processData(inputs):
data = DataObj()
data.a = 1
data.b = "sym"
data.c = [2,5,2,1]
Bu bana çok büyük bir esneklik sağlıyor, çünkü konteyner nesnesi temelde her şeyi saklayabilir. Yani yeni gereksinimler kırpılırsa, ben sadece DataObj nesnesine başka bir öznitelik olarak ekleyeceğim (ki benim kodumda iletiyorum).
Bununla birlikte, son zamanlarda (FP programcıları tarafından) bunun çok kötü bir uygulama olduğu beni etkiledi, çünkü kodu okumak çok zorlaştırıyor. Bir DataObj aslında ne nitelikleri bulmak için tüm kodu geçmek zorunda.
Soru : Esneklikten ödün vermeden daha fazla sürdürülebilirlik için bunu nasıl yeniden yazabilirim?
İşlevsel programlamadan benimseyebileceğim fikirler var mı?
Orada en iyi uygulamaları arıyorum.
Not : bir fikir, sınıfın karşılaşmayı beklediği tüm niteliklerle önceden başlatılmasıdır, örn.
class DataObj:
"Catch-all data object"
def __init__(self):
data.a = 0
data.b = ""
data.c = []
def processData(inputs):
data = DataObj()
data.a = 1
data.b = "sym"
data.c = [2,5,2,1]
Bu gerçekten iyi bir fikir mi? Niteliklerimin a priori olduğunu bilmiyorsam ne olur?