教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Python是按引用调用还是按值调用?

更新时间:2023年03月27日14时19分 来源:传智教育 浏览次数:

好口碑IT培训

  在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,它接收一个列表参数lst并将值4添加到该列表中。然后我们创建一个名为my_list的列表,调用change_list函数并将my_list作为参数传递。最后,我们在主程序中打印my_list的值,发现它已经被修改了,添加了值4。

  这是因为在Python中,my_list的值实际上是一个指向列表对象的引用,当它被传递给change_list函数时,实际上传递的是该引用。在函数内部,我们可以通过这个引用来访问和修改列表对象,而这些修改会反映在调用者中。

  需要注意的是,虽然Python中的参数传递是按引用调用,但是对于不可变类型的参数(例如数字、字符串和元组),修改操作会创建一个新的对象,而不是在原始对象上进行修改。因此,即使传递的是不可变类型的参数,也不能说Python中是按值调用。

0 分享到:
和我们在线交谈!