परिचय..
यदि हम एक प्रोग्राम लिख रहे थे जो दो संख्याओं पर अंकगणितीय संचालन करता है, तो हम उन्हें दो स्थितीय तर्कों के रूप में परिभाषित कर सकते हैं। लेकिन चूंकि वे एक ही प्रकार/पायथन डेटा प्रकार के तर्क हैं, इसलिए argparse को यह बताने के लिए nargs विकल्प का उपयोग करना अधिक समझ में आता है कि आप बिल्कुल एक ही प्रकार के दो चाहते हैं।
इसे कैसे करें..
1. आइए दो संख्याओं को घटाने के लिए एक प्रोग्राम लिखें (दोनों तर्क एक ही प्रकार के हैं)।
उदाहरण
import argparse
def get_args():
""" Function : get_args
parameters used in .add_argument
1. metavar - Provide a hint to the user about the data type.
- By default, all arguments are strings.
2. type - The actual Python data type
- (note the lack of quotes around str)
3. help - A brief description of the parameter for the usage
4. nargs - require exactly nargs values.
"""
parser = argparse.ArgumentParser(
description='Example for nargs',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('numbers',
metavar='int',
nargs=2,
type=int,
help='Numbers of type int for subtraction')
return parser.parse_args()
def main():
args = get_args()
num1, num2 = args.numbers
print(f" *** Subtracting two number - {num1} - {num2} = {num1 - num2}")
if __name__ == '__main__':
main() -
nargs=2 के लिए ठीक दो मानों की आवश्यकता होगी।
-
प्रत्येक मान को एक पूर्णांक मान के रूप में भेजा जाना चाहिए अन्यथा हमारा प्रोग्राम त्रुटिपूर्ण हो जाएगा।
आइए अलग-अलग मानों को पास करके प्रोग्राम चलाते हैं।
आउटपुट
<<< python test.py 30 10 *** Subtracting two number - 30 - 10 = 40 <<< python test.py 30 10 *** Subtracting two number - 30 - 10 = 20 <<< python test.py 10 30 *** Subtracting two number - 10 - 30 = -20 <<< python test.py 10 10 30 usage: test.py [-h] int int test.py: error: unrecognized arguments: 30 <<< python test.py usage: test.py [-h] int int test.py: error: the following arguments are required: int