欢迎访问宙启技术站
智能推送

如何在Python函数之间传递参数?

发布时间:2023-12-04 01:24:55

在Python中,可以通过不同的方式在函数之间传递参数。以下是几种常见的方法:

1. 位置参数传递:这是最常见的方式,参数的传递顺序和函数定义时的顺序一致。

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

result = add(3, 5)
print(result)  # 输出 8

2. 关键字参数传递:可以通过参数名来指定传递的值,可以不按顺序传递。

def subtract(a, b):
    return a - b

result = subtract(b=5, a=3)
print(result)  # 输出 -2

3. 默认参数值:可以在函数定义时给参数设置默认值,如果在调用函数时没有传递对应的参数,则使用默认值。

def multiply(a, b=2):
    return a * b

result1 = multiply(3)  # 使用默认值,结果为 6
result2 = multiply(3, 4)  # 覆盖默认值,结果为 12

print(result1, result2)

4. 可变参数列表:可以处理数量不定的参数,可以是任意个数的参数。

- 位置可变参数:使用星号(*)将参数收集为一个元组。

def average(*args):
    return sum(args) / len(args)

result = average(1, 2, 3, 4, 5)
print(result)  # 输出 3.0

- 关键字可变参数:使用两个星号(**)将参数收集为一个字典。

def print_scores(**kwargs):
    for student, score in kwargs.items():
        print(f"{student}: {score}")

print_scores(Tom=80, Alice=90, Bob=75)
# 输出:
# Tom: 80
# Alice: 90
# Bob: 75

5. 全局变量:可以在一个函数中声明一个全局变量,并在另一个函数中使用。

def set_global_var():
    global x
    x = 10

def print_global_var():
    print(x)

set_global_var()
print_global_var()  # 输出 10

6. 通过返回值传递:一个函数可以将结果作为返回值返回,并被另一个函数接收。

def square(x):
    return x ** 2

def cube(x):
    return square(x) * x

result = cube(2)
print(result)  # 输出 8

请注意,函数之间传递参数时,参数名可以不必相同,只要对应位置或对应关键字正确即可。此外,在使用可变参数时,也可以同时使用位置参数和关键字参数传递参数。