Возможно ли добавить пользовательскую функцию «использование» вместо сообщения об использовании по умолчанию, предоставляемого python argparse.Пользовательская функция 'use' в argparse?
Пример кода:
parser = argparse.ArgumentParser(description='Sample argparse py')
parser.add_argument('-arg_1',type=int, custom_usage_funct('with_some_message'))
output = parser.parse_args()
def custom_usage_funct(str):
print str
print '''
Usage: program.py
[-a, Pass argument a]
[-b, Pass argument b]
[-c, Pass argument c]
[-d, Pass argument d]
comment
more comment
'''
Если переданный аргумент строку значение, вместо целого числа, то программа должна вызвать функцию пользовательского использования с сообщением об ошибке «Просьба целочисленное значение»
Действительный аргумент
program.py -arg_1 123
Недопустимый аргумент
program.py -arg_1 abc
Please provide an integer value
Usage: program.py
[-a, Pass argument a]
[-b, Pass argument b]
[-c, Pass argument c]
[-d, Pass argument d]
comment
more comment
Можно ли вызвать пользовательскую функцию на основе ввода аргументов? Предположим, что аргумент ожидает только целочисленное значение, и если пользователь вводит строковое значение. Затем пользовательская функция использования должна вызываться с сообщением «Аргумент принимает только целочисленное значение» – devav2
Да, вы можете сделать это с помощью аргумента action = 'keyword. Пример [здесь] (http://docs.python.org/2.7/library/argparse.html#action). См. Мой отредактированный ответ. –
Вам не нужно создавать функцию msg. Так как он возвращает строку, а use = принимает строку, вы можете вырезать среднего человека. –