python值传递和引用传递有什么不同

60次阅读
没有评论

共计 504 个字符,预计需要花费 2 分钟才能阅读完成。

在 Python 中,变量的传递方式既不是纯粹的值传递,也不是纯粹的引用传递,而是一种称为 ” 对象的引用传递 ” 的方式。
值传递是指在函数调用时,将实际参数的值复制给形式参数,函数中对形式参数的修改不会影响实际参数的值。而引用传递是指在函数调用时,将实际参数的引用(内存地址)传递给形式参数,函数中对形式参数的修改会影响实际参数的值。
在 Python 中,当一个变量被作为参数传递给函数时,实际上是将该变量的引用(内存地址)传递给函数。如果在函数中修改了形式参数的值,会影响原始变量的值,这类似于引用传递的行为。但是,如果在函数中给形式参数重新赋值,即让形式参数指向一个新的对象,原始变量的值不会受到影响,这类似于值传递的行为。
下面通过例子来说明:

def foo(x):
x = 10
print('x in foo:', x)
a = 5
foo(a)
print('a after foo:', a)

输出结果为:

x in foo: 10
a after foo: 5

在函数内部,x = 10 是给形式参数重新赋值,这时形式参数 x 指向了一个新的对象 10,原始变量 a 的值不会受到影响。所以,可以说 Python 是使用对象的引用传递来传递参数。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计504字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)