Python函数的可变长参数

# 非关键字可变长参数(元组*args),把N个非关键字参数参数转化为元组。
# 当函数被调用的时候,所有形参(必须的和默认的)都将赋值给函数声明中对应的局部变量,剩下的非关键字参数按顺序插入到一个元组中。
# 可变长参数元组必须在位置参数和默认参数之后。
def func(arg1, arg2 = 9, *args):
    print("arg1: %d" % arg1)
    print("arg2: %d" % arg2)
    for i in args:
        print("another arg: %d" % i)
#func(1, 2)
#func(1, 2, 3, 4, 5)
#func(1, 2, *(3, 4, 5))  # *(3, 4, 5) = tuple(3, 4, 5)

# 关键字可变长参数(字典**kwargs),把N个关键字参数转化为字典。
def func1(name, age=25, **kwargs):
    print(name)
    print(age)
    for key in kwargs:
        print(kwargs[key])

func1('Jack', 28, sex = "male", job = 'Engineer')

def func2(name, age=13, *args, **kwargs):
    print("name is %s" % name)
    print("age is %d" % age)
    for info in args:
        print("班级信息:%s" % info)
    for key in kwargs:
        print("其他信息:%s" % kwargs[key])

func2('xiaoming', 12, 'Class2', 'Grade1', job='Student', score='100')

# 位置参数必须在关键字参数前面。

posted @ 2017-01-04 17:39  go_ahead  阅读(628)  评论(0编辑  收藏  举报