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

Python中方法(method)的参数传递方式解析

发布时间:2024-01-16 15:24:08

Python中方法的参数传递方式有两种,分别是传值和传引用。

1. 传值方式

在传值方式中,方法的参数值将被复制到方法的局部变量中,对这个局部变量值的修改不会影响到原始参数的值。

示例代码如下:

def add_num(num):
    num += 1
    print("方法内部的值:", num)

num = 10
add_num(num)
print("方法外部的值:", num)

输出结果为:

方法内部的值: 11
方法外部的值: 10

在这个例子中,首先定义了一个名为add_num的方法,它的参数num的值将被复制到add_num内部的局部变量num中。在方法内部,将局部变量num加1并打印。然后,在方法外部,打印原始参数num的值。可以看到,在方法内部修改了局部变量num的值,但是在方法外部原始参数num的值没有被修改,这说明传值方式不会改变原始参数的值。

2. 传引用方式

在传引用方式中,方法的参数引用(内存地址)被传递给方法,对参数引用所指向的对象的修改会影响到原始参数的值。

示例代码如下:

def change_list(lst):
    lst.append(4)
    print("方法内部的列表:", lst)

lst = [1, 2, 3]
change_list(lst)
print("方法外部的列表:", lst)

输出结果为:

方法内部的列表: [1, 2, 3, 4]
方法外部的列表: [1, 2, 3, 4]

在这个例子中,首先定义了一个名为change_list的方法,它的参数lst是一个列表对象的引用。在方法内部,通过引用对列表对象进行修改,添加了一个元素4,并打印修改后的列表。然后,在方法外部,打印原始参数lst,可以看到原始参数的值也被修改了,这说明传引用方式会改变原始参数的值。

需要注意的是,只有可变对象(如列表、字典)才可以通过传引用方式进行修改,对于不可变对象(如整数、字符串)无法直接修改,只能通过返回修改后的值来间接实现。

综上所述,Python中方法的参数传递方式有传值和传引用两种,通过传值方式传递参数不会改变原始参数的值,而通过传引用方式传递参数可以改变原始参数的值。具体的传递方式取决于参数的对象类型。