2010-11-15 32 views
1

簡單的問題:如何將任意參數列表傳遞給可調用的python?調用Python可調用的參數列表

比方說,我想從從命令行調用的函數,像這樣:

my_script.py foo hello world 

與下面的腳本:

import myfuncs 
f = getattr(myfuncs, sys.args[1]) 
if f and callable(f): 
    # This is the bit I don't know. I effectively want f(sys.args[2:]) 

我敢肯定有辦法做到這一點,但我必須忽略它。

回答

6

您正在尋找sequence unpacking。即f(*sys.argv[2:])

+0

謝謝你,這些事總是簡單的,一旦你知道他們叫什麼,是吧? – Toji 2010-11-15 17:02:06

4

是的,請查看文檔中的Unpacking argument lists部分。

對於您的特定用途,也可能是這樣的

def f(a, b, c): 
    print a, b, c 

stuff = ['f',2,3,4] 

f(*stuff[1:]) ### equivalent to f(2,3,4)