क्या विकल्प अनिवार्य रूप से एक विकल्प बनाना संभव है?क्या विकल्प अनिवार्य रूप से एक विकल्प बनाना संभव है?
उत्तर
मैं एक टिप्पणी पहले तैनात है, लेकिन यह देखते हुए कि कई अन्य उत्तर कहना No, not possible
, यहाँ इसे कैसे करना है:
parser = OptionParser(usage='usage: %prog [options] arguments')
parser.add_option('-f', '--file',
dest='filename',
help='foo help')
(options, args) = parser.parse_args()
if options.filename is None: # if filename is not given
parser.error('Filename not given')
यह -f
के रूप में अनिवार्य बनाता है।
argparse
का उपयोग करना वास्तव में एक विकल्प है, लेकिन इसका मतलब यह नहीं है कि आप इसे optparse
में भी नहीं कर सकते हैं।
ठीक है, मेरा यही मतलब है (- ऑप्टपरसे इसे किसी भी तरह की डिफ़ॉल्ट पर सेट करें और किसी के लिए जांच न करें), मुझे लगता है कि एक उदाहरण प्रदान करना चाहिए था। धन्यवाद। बीटीडब्ल्यू, यह optparse द्वारा नहीं किया जाता है, आप प्रोग्राम में विकल्प के मूल्य की जांच करके कर रहे हैं। –
दरअसल, 'ऑप्टपरसे' की कोई भूमिका नहीं है, यह एक विकल्प बनाने का एक तरीका है। – user225312
विकल्प पराजय वैकल्पिक द्वारा है :-) यदि आपको कुछ अनिवार्य बनाने की आवश्यकता है, तो argparse
का उपयोग करें और एक स्थितित्मक तर्क निर्धारित करें।
नहीं, आप नहीं कर सकते हैं। या तो आप argparse
का उपयोग कर सकते हैं और आपको ऑप्टपर मॉड्यूल का उपयोग करने से विकल्प मान मिलता है और स्पष्ट रूप से जांचता है कि क्या विकल्प निर्धारित किया गया है (जैसे ऑप्टपर में इसे किसी भी डिफ़ॉल्ट रूप से सेट करें और किसी के लिए जांच न करें) और यदि यह परिभाषित नहीं किया गया है, उपयोगकर्ताओं को यह विकल्प प्रदान करने के लिए कह रहे हैं sys.exit()
पर कॉल करें।
यह संभव है। – user225312
हां, यह संभव है। इस प्रश्न का उत्तर यहां देखें (http://stackoverflow.com/questions/4407539/) – user225312
हां, लेकिन आपको ऐसा नहीं करना चाहिए, क्योंकि यह कमांड लाइन इंटरफ़ेस के सम्मेलन और मानक के खिलाफ है। एक कारण है, विकल्पों को अनिवार्य क्यों नहीं बनाया जा सकता है। 'Optparse' दस्तावेज़ पढ़ें, यह स्पष्ट रूप से कहा गया है। – gruszczy
ठीक है, तो क्यों 'argparse' आवश्यक विकल्पों के लिए अनुमति देता है? उद्धरण के लिए, 'argparse' दस्तावेज़:' Optparse इन सुविधाओं का समर्थन करने से इंकार कर देता है, व्यावहारिकता पर शुद्धता पसंद करते हैं। ' – user225312