Multiprocessing: Variable wird in einigen Fällen vor der Zuweisung referenziert, in anderen nicht

Ich habe folgendes Beispiel auf dieser Website gefunden:

import multiprocessing
import ctypes
import numpy as np

shared_array_base = multiprocessing.Array(ctypes.c_double, 10*10)
shared_array = np.ctypeslib.as_array(shared_array_base.get_obj())
shared_array = shared_array.reshape(10, 10)

# No copy was made
assert shared_array.base.base is shared_array_base.get_obj()

# Parallel processing
def my_func(i, def_param=shared_array):
    shared_array[i,:] = i

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=4)
    pool.map(my_func, range(10))

    print shared_array

Der obige Code funktioniert einwandfrei, aber wenn ich dem gemeinsam genutzten Array ein Array hinzufügen möchte, erhalte ich etwas wie shared_array + = some_other_array (anstelle des obigen shared_array [i ,;] = i)

Lokale Variable 'shared_array', auf die vor der Zuweisung verwiesen wird

Irgendwelche Ideen, warum ich das nicht kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage