python 函数参数
位置参数
def f(x):
return x * x默认参数(即有默认值的位置参数)
def f(x, y=2):
i, sum = [0, 1]
while i < y:
sum = sum * x
i = i + 1
return sum- 默认参数必须放在位置参数前
- 当有多个默认参数时,既可以按照顺序提供默认值,也可以不按照顺序提供默认值,但不按顺序的话必须写上参数名
- 默认参数必须指向不可变对象,不能是list
可变参数(参数的个数可以改变)
在参数前加*表示def cal(*nums):
sum = 1
for i in nums:
sum *= i
return sum
* 可以将list等转化成可变参数
关键字参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
def f(name, age, **kw):
print(‘name:’, name, ‘age:’, age, ‘other:’, kw)
可以在name、age之后传递任意个带默认值的参数,但是必须写参数名
- 命名关键字参数
用*隔开,*之后表示命名关键字参数
def person(name, age, * , city, job):
print(name, age, city, job)
* 调用带有命名关键字参数的函数时,必须写明参数名,但是命名关键字参数的顺序可以改变 *
总结
以上几种参数除了可变参数和命名关键字参数之外可以混合使用