title: How does Python3 multiprocessing Process pass variables?
body: <p>I'm pretty new to Python but trying to learn how to use multi-processing. I have a method to time method execution, but for some reason the list object isn't being changed. </p>
  
  <p>See code below, what am I missing?</p>
  
  <pre><code>def timeMethod(methodToTime, methodVar, methodVar2):
       start = datetime.now()
       if methodVar2 == None and methodVar == None:
            methodToTime()
       elif methodVar2 == None:
            methodToTime(methodVar)
       else:
            methodToTime(methodVar, methodVar2)
  
       end = datetime.now()
       time_elapsed = end - start
       print("Seconds Elapsed = ", time_elapsed)
  
  def indirectList(aList):
       appendToList(aList)
  
  def appendToList(aList):
       aList.append(1)
  
  if __name__ == "__main__": 
       import sys
       primeList = []
       print("primeList before execution: " + str(primeList))
       p3 = multiprocessing.Process(target=timeMethod, args=(indirectList, primeList, None)) 
       p3.start()
       p3.join()
       print("primeList after execution: " + str(primeList))
       print("Done!")
  
  </code></pre>
  
  <p>Console Output:</p>
  
  <pre><code>primeList before execution: []
  Seconds Elapsed =  0:00:00
  primeList after execution: []
  Done!
  </code></pre>