1

所以,我试图odd_even_example.pydocopt 示例 git repo运行。

无论我尝试做什么或更改,该示例都不会按预期工作。

当我:

python odd_even_example.py 1 2 3 4

我希望看到一个包含我传递的命令行选项或参数的字典。但相反,我只是__doc__一遍又一遍地得到字符串。

我很困惑,因为我只是从示例 repo 中逐字复制并运行文件,它直接被破坏了。

这是文件的内容:

"""Usage: odd_even_example.py [-h | --help] (ODD EVEN)...
Example, try:
  odd_even_example.py 1 2 3 4
Options:
  -h, --help
"""
from docopt import docopt


if __name__ == '__main__':
    arguments = docopt(__doc__)
    print(arguments)
4

1 回答 1

1

我遇到了同样的问题,我认为问题在于您是否为(ODD EVEN)命令的一部分输入了某些内容。我玩了一点,但仍然不明白它究竟是如何工作的,但这里有一个像你期望的那样工作的例子。它将一个或多个数字作为输入,并将结果打印到标准输出。

"""Usage: odd_even_example.py [-h | --help] (NUMBERS)...

Example, try:
  odd_even_example.py 1 2 3 4

Options:
  -h, --help
"""
from docopt import docopt

def is_even(x):
    xIsEven = x%2 == 0
    if xIsEven:
        return 'EVEN'
    else:
        return 'ODD'

if __name__ == '__main__':
    arguments = docopt(__doc__) # returns a dictionary
    print(arguments)
    numbers_entered = [int(i) for i in arguments['NUMBERS']]
    answers = [is_even(x) for x in numbers_entered]
    print(answers)
于 2015-05-20T12:47:17.193 回答