我寫了這個代碼:全球陣列 - 無需「全球」的聲明
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