【发布时间】:2020-02-15 10:42:11
【问题描述】:
当我使用不返回任何内容的函数时,输入参数保持全局不变。
例如:
def func(var):
var += 1
a = 0
for i in range(3):
func(a)
print(a)
逻辑结果
0
0
0
当输入是 numpy 数组时,它的工作似乎不一样:
import numpy as np
def func(var):
var += 1
a = np.zeros(3)
for i in range(3):
func(a)
print(a)
输出:
[1. 1. 1.]
[2. 2. 2.]
[3. 3. 3.]
因此,所有修改都应用于全局数组,而不是函数内部。为什么会这样?而且,更一般地说,对于如何将 np 数组作为函数输入来处理是否有任何特殊规则?
【问题讨论】:
标签: python-3.x numpy