Varargs сбил меня с толку, поэтому я протестировал его на Python, чтобы прояснить для себя.
Прежде всего PEP для varargs здесь .
Вот пример программы, основанной на двух ответах от Дейва и Дэвида Бергера, за которыми следует вывод, просто для пояснения.
def func( *files ):
print files
for f in files:
print( f )
if __name__ == '__main__':
func( *['file1','file2','file3'] ) #Is treated like func('file1','file2','file3')
func( 'onestring' )
func( 'thing1','thing2','thing3' )
func( ['stuff1','stuff2','stuff3'] )
И результирующий вывод;
('file1', 'file2', 'file3')
file1
file2
file3
('onestring',)
onestring
('thing1', 'thing2', 'thing3')
thing1
thing2
thing3
(['stuff1', 'stuff2', 'stuff3'],)
['stuff1', 'stuff2', 'stuff3']
Надеюсь, это полезно кому-то еще.