带任意数量参数的函数

你可能已经知道了Python允许你定义可选参数。但还有一个方法,可以定义函数任意数量的参数。

 

首先,看下面是一个只定义可选参数的例子

 

def function(arg1="",arg2=""):

    print "arg1: {0}".format(arg1)

    print "arg2: {0}".format(arg2)

 

function("Hello", "World")

# prints args1: Hello

# prints args2: World

 

function()

# prints args1:

# prints args2:

 

现在,让我们看看怎么定义一个可以接受任意参数的函数。我们利用元组来实现。

 

def foo(*args): # just use "*" to collect all remaining arguments into a tuple

    numargs = len(args)

    print "Number of arguments: {0}".format(numargs)

    for i, x in enumerate(args):

        print "Argument {0} is: {1}".format(i,x)

 

foo()

# Number of arguments: 0

 

foo("hello")

# Number of arguments: 1

# Argument 0 is: hello

 

foo("hello","World","Again")

# Number of arguments: 3

# Argument 0 is: hello

# Argument 1 is: World

# Argument 2 is: Again

posted @ 2017-06-05 11:19  lp4083331  阅读(201)  评论(0)    收藏  举报