Когда я запускаю что-то вроде:
from multiprocessing import Pool
p = Pool(5)
def f(x):
     return x*x
p.map(f, [1,2,3])
он отлично работает. Однако, полагая это как функцию класса:
class calculate(object):
    def run(self):
        def f(x):
            return x*x
        p = Pool()
        return p.map(f, [1,2,3])
cl = calculate()
print cl.run()
Дает мне следующую ошибку:
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/sw/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/sw/lib/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/sw/lib/python2.6/multiprocessing/pool.py", line 225, in _handle_tasks
    put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Я видел сообщение от Alex Martelli, занимающееся той же проблемой, но это было недостаточно ясно.
