在 Python 中通过引用传递与通过值传递

pythonserver side programmingprogramming

Python 语言中的所有参数 (实参) 都是通过引用传递的。这意味着如果您在函数中更改参数所指的内容,则更改也会反映在调用函数中。

示例

#!/usr/bin/python
# 函数定义在这里
def changeme( mylist ):
"这将传递的列表更改为此函数"
mylist.append([1,2,3,4]);
print "函数内的值:", mylist
return
# 现在您可以调用 changeme 函数
mylist = [10,20,30];
changeme( mylist );
print "函数外的值:", mylist

输出

在这里,我们维护传递的对象的引用,并在同一个对象中附加值。因此,这将产生以下结果 −

函数内的值:[10, 20, 30, [1, 2, 3, 4]]
函数外的值:[10, 20, 30, [1, 2, 3, 4]]

还有一个例子,其中参数通过引用传递,并且引用在被调用函数内被覆盖。

示例

#!/usr/bin/python
# 函数定义在这里
def changeme( mylist ):
"这将传递的列表更改为此函数"
mylist = [1,2,3,4]; # 这将在 mylist 中分配新的引用
print "函数内的值:", mylist
return
# 现在您可以调用 changeme 函数
mylist = [10,20,30];
changeme( mylist );
print "函数外的值:", mylist

输出

参数 mylist 是函数 changeme 的本地参数。在函数内更改 mylist 不会影响 mylist。该函数不会执行任何操作,最终将产生以下结果 −

函数内的值:[1, 2, 3, 4]
函数外的值:[10, 20, 30]

相关文章