#python #python-3.x #windows #task #invoke
#python #python-3.x #Windows #задача #вызвать
Вопрос:
У меня есть задача, которая имеет 2 аргумента: x — N — целое число с плавающей запятой
Я хочу, чтобы тип аргументов отображался при вводе —help в командной строке.
код:
from invoke import task, call
from capi_math import mac_exp
@task(aliases = ['e'],
optional = ['N'],
help = {'x':'power of the exponent','N':'number of iterations of the maclurian series'})
def exp(c, x, N=100):
"""
calculate e**x using the Maclurian series up to the Nth iteration
"""
print(mac_exp(float(x),int(N)))
текущий вывод:
C:***> inv --help exp
Usage: inv[oke] [--core-opts] exp [--options] [other tasks here ...]
Docstring:
calculate e**x using the Maclurian series up to the Nth iteration
Options:
-N [INT] number of iterations of the maclurian series
-x STRING power of the exponent
требуемый результат:
C:***> inv --help exp
Usage: inv[oke] [--core-opts] exp [--options] [other tasks here ...]
Docstring:
calculate e**x using the Maclurian series up to the Nth iteration
Options:
-N [INT] number of iterations of the maclurian series
-x FLOAT power of the exponent
Ответ №1:
Единственный способ узнать, что N — это int, — это потому, что вы задаете ему значение по умолчанию, я думаю, это сделает то же самое для x.
def exp(c, x=0.0, N=100):
Вторым вариантом было бы использовать optparse, поскольку это дает вам более точный контроль над выводом. например, затем вы могли бы сделать
parser.add_option("-x", "--exponent",
metavar="FLOAT", help="power of the exponent compels you")
Комментарии:
1. но теперь x является необязательным, и я хочу, чтобы x был обязательным, неужели нет способа это сделать?