Python函数可变参数就相当于列表list或元组tuple类型参数,函数参数形式是参数名前面加个星(*)号,比如 *参数名,当调用函数的时候,可变参数可以动态的传一个或者多个值,不像普通参数只能传一个值给参数,也可以直接传列表或元组类型给可变参数,下面看看代码例子:
#可变参数
def add_calc1(num):
sum = 0
for x in num:
sum += x
return sum
l1 = [1, 2, 3, 4]
sum = add_calc1(l1)
print("add_calc1:", sum)
def add_calc2(*num):
sum = 0
for x in num:
sum += x
return sum
sum = add_calc2(1, 2, 3, 4)
print("add_calc2:", sum)
l2 = (1, 2, 3, 4)
#l2 = [1, 2, 3, 4]
sum = add_calc2(*l2)
print("add_calc2:", sum)
Python关键字参数就相当于字典类型参数,函数参数形式是参数名前面加两个星(**)号,比如 **参数名, 关键字参数不限制参数个数,当调用函数的时候,每个参数可以 参数名=值 形式传参,也可以直接传入一个字典参数,但是字典参数要和函数参数一样传入时候前面必须加两个星(**)号,下面用一个代码例子来看看:
#关键字(字典)参数
def profile(**info):
print(info)
profile(a=1, b="sss", c=1.245)
dic = {"a":1, "b":"sss", "c":1.245}
profile(**dic)
if "a" in dic:
print("a in the dic")
Python还有个命名关键字参数,就是在调用函数传参数时候必须指定函数定义时候的参数名,函数参数形式是 在命名关键字前面必须加个星(*)号参数,比如 def func(*, argu......),当在调用函数时候 参数名=值 形式传参,参数名和定义的argu一样,下面用代码例子来看看:
#命名关键字参数
def person(*, city="beijing", job):
print(city, job)
person(job="Python")