在 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]