python locals()和循环

Sam*_*mer 0 python

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

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

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

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

Mar*_*ers 5

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

list = locals().values()
Run Code Online (Sandbox Code Playgroud)

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

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

func(1, 2)
Run Code Online (Sandbox Code Playgroud)