Python函数参数Python函数参数有哪些类型?如何传递函数参数?
发布时间:2023-07-04 01:01:33
Python函数参数的类型包括:位置参数、默认参数、可变长参数和关键字参数。
1. 位置参数:函数定义时,根据参数的位置进行传递,调用函数时需要按照参数的顺序传递对应的值。例如:
def add(a, b):
return a + b
result = add(1, 2)
print(result) # 输出3
2. 默认参数:在函数定义时给参数设置默认值,在函数调用时可以选择性地不传递该参数。若不传递则使用默认值。例如:
def multiply(a, b=2):
return a * b
result1 = multiply(3) # 等价于 multiply(3, 2),输出6
result2 = multiply(3, 4) # 输出12
3. 可变长参数:在函数定义时,可以接收不定数量的参数。分为两种类型:*args 和 **kwargs。
- *args:接收任意个非关键字参数,作为一个元组传递给函数。例如:
def add(*args):
result = 0
for num in args:
result += num
return result
result = add(1, 2, 3) # 输出6
- **kwargs:接收任意个关键字参数,作为一个字典传递给函数。例如:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="John", age=25) # 输出name: John age: 25
4. 关键字参数:通过指定参数名来传递参数值,可以不按照参数定义的顺序传递参数。例如:
def print_info(name, age):
print(f"Name: {name}")
print(f"Age: {age}")
print_info(age=25, name="John") # 输出Name: John Age: 25
在函数调用时,可以通过位置传参、关键字传参、或者混合使用。例如:
def example(a, b, c=3, *args, **kwargs):
print(f"a: {a}")
print(f"b: {b}")
print(f"c: {c}")
print(f"args: {args}")
print(f"kwargs: {kwargs}")
example(1, 2, 4, 5, 6, name="John", age=25)
# 输出
# a: 1
# b: 2
# c: 4
# args: (5, 6)
# kwargs: {'name': 'John', 'age': 25}
除了上述的传递方式,还可以使用可迭代对象来传递参数,称为可迭代参数解包。用\*对列表、元组等可迭代对象进行解包,每个元素分别对应一个位置参数,用\**对字典等可迭代对象进行解包,键值对分别对应关键字参数。例如:
def add(a, b):
return a + b
params = [2, 3]
result = add(*params) # 等价于 add(2, 3),输出5
params_dict = {"a": 2, "b": 3}
result = add(**params_dict) # 等价于 add(a=2, b=3),输出5
总结起来,Python函数参数的传递方式有位置传参、关键字传参、可迭代参数解包以及上述提到的四种参数类型。根据具体的需求和函数定义,可以选择适合的传参方式。
