Python — измените тип СТРОКИ в invoke.task

#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 был обязательным, неужели нет способа это сделать?