函数参数

1、可变参数,参数个数可变

在参数前面加上* 就代表可变参数

可变参数,在函数内部其实就是一个tuple

def fun(*num):

        sum = 0

        for n in num:

               sum = sum + n

         return sum

# 由于定义函数的参数是可变,所以这里可以写任意多个参数

print(fun(1,2,3,4))

结果是:1+2+3+4=10

# 如果有个list或者tuple,想将里面的每一个元素当做参数传进去,可以在list或者tuple前面加上*,这样list或tuple中的元素就变成了可变参数传进去

nums = [1, 2, 3, 4, 5]

print(fun(*nums))  # *nums表示把nums这个list的所有元素作为可变参数传进去

结果是:1+2+3+4+5=15


二、关键字参数。

关键字参数允许你传入任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

 # 前两个是位置参数,**kw是关键字参数

def  person(name, age, **kw):

print('name=',name,'age=',age,'other',kw)

# 没有传关键字参数

person('lisa', 18)

结果是:name=lisa, age=18,other{}


# 一个关键字参数 ,调用关键字参数,是键值对的形式

person('lisa', 18, city='beijing')

结果是:name=lisa, age=18,other{'city':'beijing'}

# 多个关键字参数

person('lisa', 18, city='beijing',job='teacher')

结果是:name=lisa, age=18,other{'city':'beijing', 'job':'teacher'}


# 将已有的dict当做参数传进去

# **otherDic表示把otherDic这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是otherDic的一份拷贝,对kw的改动不会影响到函数外的otherDic。

otherDic = {'city':'beijing', 'sex':'man', 'job':'student'}

person('lisa', 18, **otherDic)

结果是:name=lisa, age=18,other{'city':'beijing','sex':'man', 'job':'teacher'}

你可能感兴趣的:(函数参数)