python 函数传参机制与使用方法

  • Post category:Python

Python 中有多种方式可以传递参数给函数,包括位置参数、关键字参数、可变参数和关键字可变参数。下面,我们将一一详细讲解这些传参机制及其使用方法。

位置参数

位置参数是最简单的一种传参方式,它按照参数的位置顺序进行传递。例如,下面这个函数有两个位置参数,分别是 ab

def add(a, b):
    return a + b

我们可以调用这个函数并传入两个参数,如下:

>>> add(1, 2)
3

这里,我们把 1 这个值传递给了 a,把 2 这个值传递给了 b

关键字参数

关键字参数指的是在调用函数时使用参数名来传递参数,这种方式可以让代码更具可读性和可维护性。例如,下面这个函数同样有两个参数,但我们使用了关键字参数来传递它们:

def add(a, b):
    return a + b

我们可以这样调用它:

>>> add(b=2, a=1)
3

这里,我们使用 a=1 的方式把 1 这个值传递给了 a,使用 b=2 的方式把 2 这个值传递给了 b

可变参数

可变参数指的是可以接受任意数量的参数,包括 0 个。在 Python 中,可变参数有两种形式:*args**kwargs

*args

*args 表示的是接受任意数量的位置参数。例如,下面这个函数使用了可变参数来求和:

def add(*args):
    return sum(args)

我们可以这样调用它:

>>> add(1, 2, 3)
6

这里,我们把多个参数传递给了 add() 函数,它会把这些参数打包成一个元组传递给 *args,接着使用了 sum() 函数对元组内的元素进行求和。

**kwargs

**kwargs 表示的是接受任意数量的关键字参数。例如,下面这个函数使用了可变关键字参数来打印用户名和年龄:

def user_info(**kwargs):
    print(kwargs['name'] + ' is ' + str(kwargs['age']) + ' years old.')

我们可以这样调用它:

>>> user_info(name='Alice', age=25)
Alice is 25 years old.

这里,我们把多个关键字参数传递给了 user_info() 函数,它会把这些参数打包成一个字典传递给 **kwargs,并可以根据键值对的方式来访问参数。

代码实例

下面是两个使用了不同传参机制的具体实例:

使用位置参数和关键字参数

def print_info(name, age, job):
    print(name + ' is ' + str(age) + ' years old and works as a ' + job + '.')

# 使用位置参数传参
print_info('Alice', 25, 'developer')

# 使用关键字参数传参
print_info(age=25, name='Bob', job='programmer')

输出:

Alice is 25 years old and works as a developer.
Bob is 25 years old and works as a programmer.

使用可变参数

def print_args(*args):
    for arg in args:
        print(arg)

print_args('apple', 'banana', 'cherry')

输出:

apple
banana
cherry

这里,我们定义了一个名为 print_args() 的函数,并使用了可变位置参数 *args 来接受任意数量的参数。在函数内部,使用了 for 循环来遍历元组 args 中的所有参数,并打印输出。