Maison > Questions et réponses > le corps du texte
from multiprocessing import Pool
def a(num):
print num
if __name__ == "__main__":
pool = Pool(3)
for i in range(10):
pool.apply_async(a,args=(i,))
pool.close()
pool.join()
用进程池运行a这个函数,返回结果是正常的,但是假如这么写:
from multiprocessing import Pool
class adb():
def a(self,num):
print num
if __name__ == "__main__":
pool = Pool(3)
for i in range(10):
pool.apply_async(adb().a,args=(i,))
pool.close()
pool.join()
则程序没有任何返回就结束了,请问这是怎么回事呢,有什么办法让后面这种写法也可以运行呢?
PHP中文网2017-04-18 09:50:18
Lors de l'utilisation d'une classe, cet objet de classe n'est pas instancié. Deuxièmement, lors de l'appel d'une fonction, vous devez l'appeler sous la forme de "nom de classe. nom de fonction"
En fonction de vos modifications :
Si vous souhaitez utiliser des méthodes de classe, définissez cette méthode comme méthode de classe :
class adb():
@classmethod
def a(self,num):
print(num)
Si vous souhaitez utiliser des méthodes d'objet de classe, alors initialisez un objet :
if __name__ == "__main__":
pool = Pool(3)
a_obj = adb()
for i in range(10):
pool.apply_async(a_obj.a,args=(i,))
pool.close()
pool.join()