对于我来说,可变参数很困惑,因此我在Python中进行了测试,以便自己澄清。
首先,varargs的PEP在这里。
以下是一个示例程序,基于Dave和David Berger的两个答案,后跟输出,仅供澄清。
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']
希望这对其他人有所帮助。
isinstance(your_var, str)
。 - Attila Tanyi