下面是对Python函数参数的详细讲解。
函数参数概述
在Python中,函数参数分为三种类型:必须参数、可变参数和关键字参数。
必须参数是指在函数调用中必须要传递的参数,没有传递就会报错;可变参数是指在函数调用中可以传入任意个数的参数;关键字参数是指在函数调用中,通过指定参数名来传递参数。
必须参数
必须参数是指在函数的定义中必须声明的参数。当函数被调用时,必须传入这些参数,否则会触发TypeError,提示缺失参数。
下面是函数定义中只含有必须参数的一个示例:
def add(num1, num2):
return num1 + num2
在这个示例中,函数add有两个必须参数:num1和num2。如果我们调用这个函数却没有传入任何参数,就会报错:
add() # TypeError: add() missing 2 required positional arguments: 'num1' and 'num2'
可变参数
可变参数是指在函数定义中可以接受任意个数的参数。Python中有两种方式来定义可变参数:使用args表示任意数量的位置参数,使用*kwargs表示任意数量的关键字参数。
下面是使用*args定义可变参数的例子:
def add(*nums):
result = 0
for num in nums:
result += num
return result
在这个示例中,函数add使用*nums表示可变位置参数,可以接受任意数量的参数。调用这个函数时,可以传入任意个数的位置参数:
add(1, 2, 3) # 6
add(1, 2, 3, 4, 5) # 15
下面是使用**kwargs定义可变关键字参数的例子:
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
print_info(name="Bob", age=18) # name: Bob, age: 18
print_info(name="Alice", height=170, weight=60) # name: Alice, height: 170, weight: 60
在这个示例中,函数print_info使用**info表示可变关键字参数,可以接受任意数量的关键字参数。调用这个函数时,可以传入任意数量的关键字参数:
关键字参数
关键字参数是指在函数调用中,通过指定参数名来传递参数。使用关键字参数的好处在于可以不按照函数定义的参数顺序进行传参,而且可以更清晰地表达函数调用的意图。
下面是一个使用关键字参数的示例:
def print_info(name, age):
print(f"name: {name}, age: {age}")
print_info(age=18, name="Bob") # name: Bob, age: 18
在这个示例中,函数print_info有两个必须参数:name和age。调用这个函数时,传入了两个关键字参数:age和name,它们的顺序和函数定义不一致。但是Python会根据参数名来匹配对应的值,因此仍然可以正确调用函数。
以上就是Python函数参数的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python函数参数(必须参数、可变参数、关键字参数) - Python技术站