मुझे खेद है कि अगर यह एक ABSOLUTELY सोफोमेरिक प्रश्न है, लेकिन मैं उत्सुक हूं कि सबसे अच्छे अभ्यास क्या हैं, और मुझे Google पर एक अच्छा जवाब नहीं मिल रहा है।
पायथन में, मैं आमतौर पर एक सुपर-कैटचेल डेटा संरचना कंटेनर (एक JSON फ़ाइल की तरह) के रूप में एक खाली वर्ग का उपयोग करता हूं, और रास्ते में विशेषताओं को जोड़ता हूं:
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]
यह मुझे काफी मात्रा में लचीलापन देता है, क्योंकि कंटेनर ऑब्जेक्ट अनिवार्य रूप से कुछ भी स्टोर कर सकता है। इसलिए यदि नई आवश्यकताएं पूरी होती हैं, तो मैं इसे DataObj ऑब्जेक्ट की एक और विशेषता के रूप में जोड़ दूंगा (जो मैं अपने कोड में पास करता हूं)।
हालांकि, हाल ही में यह मुझ पर (एफपी प्रोग्रामर्स द्वारा) प्रभावित हुआ है कि यह एक भयानक अभ्यास है, क्योंकि यह कोड को पढ़ने के लिए बहुत कठिन बनाता है। DataObj के पास वास्तव में क्या विशेषताएँ हैं, यह जानने के लिए सभी कोड से गुजरना पड़ता है।
प्रश्न : मैं लचीलेपन का त्याग किए बिना अधिक स्थिरता के लिए इसे कैसे लिख सकता हूं?
क्या कार्यात्मक प्रोग्रामिंग से कोई विचार है जिसे मैं अपना सकता हूं?
मैं वहाँ सर्वोत्तम प्रथाओं की तलाश कर रहा हूँ।
नोट : एक विचार वर्ग को उन सभी विशेषताओं के साथ प्रारंभिक-आरंभ करना है, जो किसी से मुठभेड़ की उम्मीद करती है, जैसे
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]
क्या यह वास्तव में एक अच्छा विचार है? क्या होगा अगर मुझे नहीं पता कि मेरी विशेषताएँ एक प्राथमिकता क्या हैं?