Skip to main content
 首页 » 编程设计

python:函数参数更新问题

2025年05月04日17zhenyulu

我有一个 python 函数 func(A)。 A 是一个 numpy.array 并且可能很大以至于我犹豫要一遍又一遍地复制它。这个 func(A) 想要改变 A 的内容。我知道这是一个 python 新手问题。我以前用 C 编程,它可以通过指针来完成。如何更改 A 的内容,以便更改在 func(A) 的范围之外也有效?

请您参考如下方法:

tl;dr 就您而言,基本上已经是。除非您在方法中为标签 A 分配新值,否则 A 将是对您传递的对象的引用,这意味着对 A 的任何修改都会在您使用它的任何其他地方更改原始对象。

例如:

>>> def foo(A): 
...     print A[0] 
...     A[0] = 2 
...     print A[0] 
... 
>>> a = [0, 1, 2] 
>>> foo(a) 
0 
2 
>>> a 
[2, 1, 2] 
>>> def bar(A): 
...     print A[0] 
...     A = [0, 1, 2] 
...     A[0] = 2 
...     print A[0] 
... 
>>> a = [0, 1, 2] 
>>> bar(a) 
0 
2 
>>> a 
[0, 1, 2]