1

我正在尝试做一些非常简单的事情,我不知道为什么我不能解决这个问题......

我有 2 个参数,我只想通过使用循环将它们都放入一个列表中,我使用循环的原因是因为有一天该函数可能需要许多 sys.argv 而不是本地变量,这就是我的意思:

def function(arg1, arg2):
    list = []
    for i in range(len(locals())):
        list.append(locals()[i])
function(1,2)

如果你明白我的意思,你能告诉我这个问题的解决方案吗?谢谢

4

2 回答 2

6

locals()是一个字典,只是.values()用来获取所有包含的值:

list = locals().values()

但是,如果您的函数将来会使用sys.argv,请让您的函数使用位置参数:

def func(*args):
    # args is a list of arguments
    print args

func(1, 2)
于 2013-01-09T18:42:21.287 回答
0

是否有理由需要locals()用于从中获取值的目的sys.argv?如果您正在解析命令行参数,也许看看argparsehttp://docs.python.org/dev/library/argparse.html

于 2013-01-09T18:44:16.173 回答