'Namespace' 对象不可迭代
'Namespace' object is not iterable
正在尝试使用 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)
错误命名空间参数不可迭代
我认为是因为我传递的参数类型不正确。在通读了我能找到的所有文档后,我不知道如何进行这项工作。我希望程序对我传递的数字进行排序。
parser.parse_args()
returns a Namespace
object,这是一个对象,其属性表示已解析的标志。它是不可迭代的。
您似乎想要获取 -f
之后给出的命令行参数,在这种情况下,您可以从 [=13] 中取出 那个特定的标志 =] 对象:
print(sorthelper.sortNumbers(args.f))
此外,您当前拥有的代码将打印 None
,因为 sortNumbers()
不会 return 任何内容。内置的 sorted()
函数 不会就地排序 (虽然 list.sort()
可以,如果你想使用它的话),所以你必须实际做
def sortNumbers(args):
return sorted(args)
正在尝试使用 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)
错误命名空间参数不可迭代
我认为是因为我传递的参数类型不正确。在通读了我能找到的所有文档后,我不知道如何进行这项工作。我希望程序对我传递的数字进行排序。
parser.parse_args()
returns a Namespace
object,这是一个对象,其属性表示已解析的标志。它是不可迭代的。
您似乎想要获取 -f
之后给出的命令行参数,在这种情况下,您可以从 [=13] 中取出 那个特定的标志 =] 对象:
print(sorthelper.sortNumbers(args.f))
此外,您当前拥有的代码将打印 None
,因为 sortNumbers()
不会 return 任何内容。内置的 sorted()
函数 不会就地排序 (虽然 list.sort()
可以,如果你想使用它的话),所以你必须实际做
def sortNumbers(args):
return sorted(args)