python locals()和循环

时间:2013-01-09 18:39:33

标签: python

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

list = locals().values()

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

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

func(1, 2)

答案 1 :(得分:0)

您是否有理由需要使用locals()来获取sys.argv的值?如果您正在解析命令行参数,可以查看argparsehttp://docs.python.org/dev/library/argparse.html