के माध्यम से पार्सिंग मैं एक प्रबंधन स्क्रिप्ट विकसित कर रहा हूं जो कमांड लाइन विकल्प के माध्यम से काफी बड़ी मात्रा में काम करता है। स्क्रिप्ट के पहले कुछ पुनरावृत्तियों ने उपयोगकर्ता इनपुट एकत्र करने के लिए ऑप्टपर का उपयोग किया है और फिर पृष्ठ को नीचे चलाएं, उचित क्रम में प्रत्येक विकल्प के मूल्य का परीक्षण करें, और यदि आवश्यक हो तो कार्रवाई करें। इसके परिणामस्वरूप कोड का जंगल है जो पढ़ने और बनाए रखने में वाकई मुश्किल है।कमांड लाइन तर्क introspection
मैं कुछ बेहतर ढूंढ रहा हूं।
मेरी आशा है कि एक प्रणाली है जहां मैं कम या ज्यादा सामान्य पायथन फैशन में फ़ंक्शन लिख सकता हूं, और फिर जब स्क्रिप्ट चलती है, तो मेरे कार्यों से उत्पन्न विकल्प (और सहायता पाठ) होते हैं, पार्स किए जाते हैं, और निष्पादित होते हैं उचित आदेश साथ ही, मैं वास्तव में Django शैली उप आदेश इंटरफ़ेस बनाने के, जहां myscript.py install
काम करता है पूरी तरह से अलग myscript.py remove
(अलग विकल्प, मदद, आदि) से
मैं simon willison's optfunc पाया है सक्षम होने के लिए करना चाहते हैं और यह एक बहुत करता है इसमें से, लेकिन यह सिर्फ निशान को याद करने के लिए प्रतीत होता है - मैं विकल्पों को एक विशाल स्ट्रिंग में सेट करने के लिए पूरे विकल्प को संपीड़ित करने की बजाय, प्रत्येक विकल्प को फ़ंक्शन के रूप में लिखना चाहता हूं।
मुझे कल्पना है कि प्रमुख कार्यों के लिए कक्षाओं का एक सेट शामिल है, और कमांड लाइन में किसी विशेष विकल्प से संबंधित वर्ग की प्रत्येक परिभाषित विधि शामिल है। यह संरचना रखरखाव को आसान बनाने, संशोधित कार्यात्मक कोड के पास प्रत्येक विकल्प रखने का लाभ प्रदान करती है। जिस चीज को मैं नहीं जानता कि कैसे निपटना है, आदेशों का क्रम है, क्योंकि वर्ग विधियों का क्रम निर्धारण नहीं है।
इससे पहले कि मैं पहिया को फिर से शुरू कर दूं: क्या कोड की कोई अन्य मौजूदा बिट्स समान है? अन्य चीजें जिन्हें संशोधित करना आसान होगा? इस सवाल से पूछने से कि क्या अच्छा होगा, इस बारे में अपनी सोच को स्पष्ट किया है, लेकिन इस पर प्रतिक्रिया क्यों है कि यह एक भयानक विचार है, या इसे कैसे काम करना चाहिए।
धन्यवाद, यह अच्छी सलाह की तरह लगता है। –
यह उत्कृष्ट है! –