在python中将函数1中元组的所有元素(从*args)传递到函数2(作为*args)

在python中将函数1中元组的所有元素(从*args)传递到函数2(作为*args),python,function,tuples,args,Python,Function,Tuples,Args,我正在编写一个函数来获取*args输入,评估数据,然后将所有输入传递给下一个适当的函数(align),也获取*args *args似乎是一个元组。我尝试了各种方法将元组的每个元素传递到下一个函数中,最近的两种方法是: for x in args: align(*x) 及 您可以使用*args来“解包”。然后,接收函数可以再次(或不)将它们拖入一个元组 这些例子应该给我们一些启示: >>> def foo(*f_args)

我正在编写一个函数来获取*args输入,评估数据,然后将所有输入传递给下一个适当的函数(align),也获取*args

*args似乎是一个元组。我尝试了各种方法将元组的每个元素传递到下一个函数中,最近的两种方法是:

            for x in args:
                align(*x)

您可以使用
*args
来“解包”。然后,接收函数可以再次(或不)将它们拖入一个元组

这些例子应该给我们一些启示:

>>> def foo(*f_args):
...     print('foo', type(f_args), len(f_args), f_args)
...     bar(*f_args)
...     
>>> def bar(*b_args):
...     print('bar', type(b_args), len(b_args), b_args)
...     
>>> foo('a', 'b', 'c')
('foo', <type 'tuple'>, 3, ('a', 'b', 'c'))
('bar', <type 'tuple'>, 3, ('a', 'b', 'c'))
嗯,
align(*args)
>>> def foo(*f_args):
...     print('foo', type(f_args), len(f_args), f_args)
...     bar(*f_args)
...     
>>> def bar(*b_args):
...     print('bar', type(b_args), len(b_args), b_args)
...     
>>> foo('a', 'b', 'c')
('foo', <type 'tuple'>, 3, ('a', 'b', 'c'))
('bar', <type 'tuple'>, 3, ('a', 'b', 'c'))
>>> def bar(arg1, arg2, arg3):
...     print('bar redefined', arg1, arg2, arg3)
...     
>>> foo('a', 'b', 'c')
('foo', <type 'tuple'>, 3, ('a', 'b', 'c'))
('bar redefined', 'a', 'b', 'c')
>>> foo('a', 'b')
('foo', <type 'tuple'>, 2, ('a', 'b'))
---> TypeError: bar() takes exactly 3 arguments (2 given)