在Python中,函数可以通过传递可变对象作为参数来实际更改参数而不仅仅是形参。可变对象包括列表、字典和集合等。当我们将可变对象作为参数传递给函数时,函数内部对该对象的任何更改都会影响到原始对象。
下面是一个示例:
def change_list(lst):
lst.append(4) # 在函数内部修改列表
my_list = [1, 2, 3]
change_list(my_list)
print(my_list) # 输出 [1, 2, 3, 4]
在上面的示例中,我们定义了一个函数change_list
,它接受一个列表作为参数,并在函数内部修改了该列表。当我们调用change_list
函数并传递my_list
作为参数时,函数内部的修改会直接影响到my_list
。
需要注意的是,对于不可变对象(如数字、字符串和元组等),函数无法直接更改参数的值。如果想要实际更改不可变对象的值,可以通过返回修改后的值,并将其赋值给原始变量。
例如:
def increment(num):
return num + 1
my_num = 5
my_num = increment(my_num)
print(my_num) # 输出 6
在上面的示例中,我们定义了一个函数increment
,它接受一个数字作为参数,并返回该数字加1的结果。通过将my_num
重新赋值为increment(my_num)
的返回值,我们实际上改变了my_num
的值。
总结起来,要实际更改参数而不仅仅是形参,可以通过传递可变对象作为参数并在函数内部修改该对象,或者通过返回修改后的值并将其赋值给原始变量来实现。
领取专属 10元无门槛券
手把手带您无忧上云