मेरे पास एक प्रोग्राम है जो मैं पायथन में लिख रहा हूं जो निम्न करता है:पाइथन खराब में verbose __init__ विधियां हैं?
उपयोगकर्ता फ़ोल्डर के नाम में प्रवेश करता है। उस फ़ोल्डर के अंदर विभिन्न एक्सटेंशन के साथ 8-15 .dat फ़ाइलें।
प्रोग्राम उन डेटा फ़ाइलों को खोलता है, उन्हें SQL डेटाबेस में प्रवेश करता है और फिर उपयोगकर्ता को डेटाबेस में किए गए विभिन्न परिवर्तनों को चुनने की अनुमति देता है। फिर डेटाबेस को .dat फ़ाइलों पर वापस निर्यात किया जाता है। लगभग 5-10 विभिन्न ऑपरेशन किए जा सकते हैं जिन्हें किया जा सकता है।
जिस तरह से मैंने इसे डिजाइन करने की योजना बनाई थी, वह फाइलों के प्रत्येक समूह के लिए एक मानक वर्ग बनाना था। उपयोगकर्ता फ़ोल्डर के नाम और कुछ विशेषताओं वाले फ़ाइल (फ़ाइल नाम, फ़ाइलों का शब्दकोश, फाइलों का संस्करण (विभिन्न संस्करण हैं) इत्यादि का नाम दर्ज करेगा। इन विशेषताओं को निर्धारित करने के लिए इन फ़ाइलों में से कुछ खोलना, फ़ाइल नाम पढ़ना आदि की आवश्यकता है
क्या यह कार्रवाई __init__
विधि में होनी चाहिए? या क्या यह कार्रवाई हमें विभिन्न उदाहरण विधियों में ले जाया जाना चाहिए जिन्हें __init__
विधि में बुलाया जाना चाहिए? या इन तरीकों को कहीं और होना चाहिए, और केवल तब कहा जाना चाहिए जब कार्यक्रम में कहीं और विशेषता की आवश्यकता हो?
मैंने जावा में इस कार्यक्रम को पहले से ही लिखा है। और मेरे पास एक निर्माता था जिसने ऑब्जेक्ट के गुणों को सेट करने के लिए कक्षा में अन्य विधियों को बुलाया था। लेकिन मैं सोच रहा था कि पाइथन में मानक अभ्यास क्या होगा।
अनिवार्य रूप से मेरे पास फाइलों का एक समूह है जिसे "नौकरी" के रूप में वर्गीकृत किया जा सकता है। कार्यक्रम के वांछित परिणाम उत्पन्न करने के लिए विभिन्न कार्य इस नौकरी पर विभिन्न कार्रवाइयां करते हैं। यही कारण है कि मैंने सोचा कि यह इसे कक्षा के रूप में सबसे अच्छा रखता है। –
और यह इस तरह लगता है कि तुम क्या सुझाव दे रहे है: __init __ (स्वयं, फ़ोल्डर): self.filelist = getfilelist (...); self.fileversion = getfileversion (...); आदि? उदाहरण के अलावा कि विधियों में से एक महंगा है और केवल कुछ मामलों में आवश्यक है? –
यदि आपका कोड क्या कर रहा है, तो शायद आपको [आलसी गुण] (http://stackoverflow.com/q/3012421/1235039) का उपयोग करना चाहिए। ऐसा करने के कई तरीके हैं, यह केवल आपकी आवश्यकताओं और वरीयता पर निर्भर करता है। – aquavitae