我试图了解将多个参数传递给 python 函数的机制。(我使用的是 Python 2.7.9)
我正在尝试拆分传递给函数的多个用户输入参数,但它们都只是作为第一个值的单个参数传入:
def foo(first,*args):
return args, type(args)
values = raw_input().split()
print(foo(values))
将其保存到文件并运行python <name of file>.py
后,我有以下输出:
$python testfunction.py
1 2 2 4h 5
(['1', '2', '2', '4h', '5'], <type 'list'>)
((), <type 'tuple'>)
但是如果我直接调用 foo ,在脚本中是这样的:
def foo(first,*args):
return args, type(args)
print(foo(1, 2, 3, 4, 5))
然后我得到我想要的:
$ python testfunction.py
(1, <type 'int'>)
((2, 3, 4, 5), <type 'tuple'>)
None
请问为什么会发生这种情况,当我接受用户输入时如何让第二种情况发生?