4.7.3. 任意的参数列表

最后,最不常用的选项是可以使用任意数量的参数调用函数。这些参数会被包含在一个元组里(参见 元组和序列 )。在可变数量的参数之前,可能会出现零个或多个普通参数。:

  1. def write_multiple_items(file, separator, *args):
  2. file.write(separator.join(args))

一般来说,这些 可变参数 将在形式参数列表的末尾,因为它们收集传递给函数的所有剩余输入参数。出现在 *args 参数之后的任何形式参数都是 ‘仅关键字参数’,也就是说它们只能作为关键字参数而不能是位置参数。:

  1. >>> def concat(*args, sep="/"):
  2. ... return sep.join(args)
  3. ...
  4. >>> concat("earth", "mars", "venus")
  5. 'earth/mars/venus'
  6. >>> concat("earth", "mars", "venus", sep=".")
  7. 'earth.mars.venus'