use*_*117 1 python python-module argparse python-3.x
尝试使用 argparse 传递不确定数量的整数。当我输入:py main.py 3 2
%%writefile main.py
import sorthelper
import argparse
integers = 0
#top-level parser creation
parser = argparse.ArgumentParser("For sorting integers")
nargs = '+' #-> gathers cmd line arguments into a list
args = parser.add_argument('-f', metavar='N', type=int, nargs='+', help='yada yada yada')
args = parser.parse_args()
print(sorthelper.sortNumbers(args))
%%writefile sorthelper.py
def sortNumbers(args):
sorted(args)
Run Code Online (Sandbox Code Playgroud)
错误命名空间参数不可迭代
我认为是因为我传递的参数类型不正确。阅读完所有文档后,我发现我无法弄清楚如何进行这项工作。我希望程序对我传递的数字进行排序。
parser.parse_args()返回一个Namespaceobject,该对象的属性表示已解析的标志。它是不可迭代的。
似乎您想要获取之后给出的命令行参数-f,在这种情况下,您将从对象中取出该特定标志Namespace:
print(sorthelper.sortNumbers(args.f))
Run Code Online (Sandbox Code Playgroud)
此外,您当前拥有的代码将打印None,因为sortNumbers()不会返回任何内容。内置sorted()函数不会就地排序(尽管如此list.sort(),如果您想使用它),所以您必须实际执行
def sortNumbers(args):
return sorted(args)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6547 次 |
| 最近记录: |