2013-02-20 15 views
9

में पारस्परिक रूप से विशिष्ट सेट मैं एक पारस्परिक रूप से विशिष्ट समूह का उपयोग कर रहा है, लेकिन मैं एक से अधिक विकल्प विशेष सेट में से एक में किया जाना है। मैं इस तरह देखने के लिए मेरी उपयोग करना चाहते हैं:सेट करें argparse

[--conf CONF | --hostname HOSTNAME --port PORT] 

किसी भी विचार कैसे इस accompish के लिए? मैंने एक पारस्परिक रूप से अनन्य समूह में एक तर्क समूह जोड़ने का प्रयास किया है, लेकिन पारस्परिक बहिष्करण भाग उपसमूहों पर लागू नहीं होता है, और यह --conf file --hostname host --port 22

+0

गिर '--hostname' पर विचार करें और' में एक भी '--host = होस्ट --port' [: पोर्ट]' प्रविष्टि। – nneonneo

उत्तर

3

कोई जवाब नहीं है जो argparse का उपयोग करता है, लेकिन फिर भी आपकी समस्या का संभावित समाधान: argparse के बजाय docopt का उपयोग कर आप केवल अपने उपयोग के रुझानों बारे में हैं, और पार्स और आर्ग अपने कार्यक्रम के लिए पारित मान्य स्वचालित रूप से docopt दिया जाएगा। आपके मामले में,

prog_name (--conf CONF | --hostname HOST --port PORT) 

आपको पारस्परिक रूप से अनन्य समूह प्राप्त करेगा।