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

  • Post category:Python

Python 函数传参机制

Python 的函数传参机制主要有以下几点:

  1. 传递可变类型和不可变类型时,传递的是对象的引用(内存地址),在函数内部对可变类型进行修改可能会影响到外部变量的值,而对不可变类型进行修改将会创建一个新的对象,不会影响外部的变量。

  2. 参数可以设置默认值,当实参不传递时将使用默认值。

  3. 位置参数和关键字参数混合使用时,位置参数必须在关键字参数之前。

  4. 可以使用 args 和 *kwargs 传递任意数量的位置参数和关键字参数。

Python 函数使用方法

定义函数需要使用 def 关键字,后面跟上函数名、参数列表和冒号:

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

可以使用 return 语句返回函数的执行结果,也可以不使用返回值,此时函数默认返回 None

在调用函数时,将实际的参数值传递给函数。传递参数时,可以使用位置参数和关键字参数:

# 使用位置参数传递参数
x = add(1, 2)
# 使用关键字参数传递参数
y = add(a=3, b=4)

默认参数可以设置为任意类型的值,但是默认值只会在函数定义时被计算一次,如果默认值为可变类型(比如列表或字典),可能会导致每次函数调用时都使用同一个对象,导致不期望的行为。

def func(a=[], b={}):
    print(a, b)
    a.append(len(a))
    b[len(a)] = len(a)

func()  # 输出: [], {}
func()  # 输出: [0], {1: 1}
func()  # 输出: [0, 1], {1: 1, 2: 2}

使用 args 和 *kwargs 可以接收任意数量的位置参数和关键字参数:

def func(*args, **kwargs):
    print(args, kwargs)

func(1, 2, 3, a=4, b=5)  # 输出: (1, 2, 3) {'a': 4, 'b': 5}

示例1: 使用位置参数传参

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

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

示例2: 使用关键字参数传参:

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

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

通过以上示例,我们可以看到Python函数传参机制和使用方法。