我有一个 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]
