我写了这个代码:全球阵列 - 无需“全球”的声明
sample_array = ones ([N, 3], dtype = float)
def get_training_set():
r = rand (N, 2) * 2 - 1
sample_array[:,[0,1]] = r
return sample_array
我外面声明的采样阵列,为了不分配这一切的时候,只是修改它 - 最后的坐标总是1.
最初我期望我必须在函数中插入一个语句“global sample_array”,因为我修改了它,因此评估者应该知道它是一个全局变量。
但是,令我惊讶的是,没有“全球”,它运行良好。 它为什么有效?在这种情况下评估的定义在哪里/什么?
好。你能向我展示解释这个的官方手册/定义吗? – alinsoar
@alinsoar突变是当你改变'in place'时,这正是你在做的事情。如果你在**函数中定义了**,没有返回它,然后在该函数外引用它**,那么你需要一个'global'语句。 –
@mgilson。我知道什么是全球性的。但是,我看不出有关可变变量会发生什么的直接定义。 – alinsoar