Python中的函数参数传递方式有哪些?它们有什么区别?代码举例讲解

Python中的函数支持多种参数传递方式,主要有:

1. 位置参数:

  • 根据位置顺序传入参数值。
  • 用法:
def add(x, y):
    return x + y

add(1, 2)   # 3

2. 关键字参数:

  • 根据参数名和赋值运算符=传入参数值。
  • 可以使函数调用更加清晰,并且不依赖参数顺序。
  • 用法:
def person(name, age):
    print(f'Name: {name}, Age: {age}')

person(name='Jack', age=18)

3. 默认参数:

  • 为参数指定默认值,如果没有传入值则使用默认值。
  • 使得调用函数时可以忽略某些参数。
  • 用法:
def add(x, y=10):
    return x + y 

add(5)   # 15
add(5, 20) # 25

4. 可变参数:

  • 使用*参数可以接受多个位置参数,组成一个tuple。
  • 使用**参数可以接受多个关键字参数,组成一个dict。
  • 使得函数可以处理任意数量的参数。
  • 用法:
def person(name, *args):
    print(f'Name: {name}')
    for arg in args:
        print(f'Hi {arg}')

person('Jack', 'Tom', 'Lucy')

def person(name, **kwargs):
    print(f'Name: {name}')
    for k, v in kwargs.items():
        print(f'{k}: {v}')

person('Jack', age=18, city='New York')