2012-07-18 27 views
8

Burada, bir işlev çağrısında anahtar kelime bağımsız değişkenlerini kullanmanın basit bir örneği gösterilmektedir. Özel birşey yok.Python çok işlemcili anahtar kelime bağımsız değişkenleri

def foo(arg1,arg2, **args): 
    print arg1, arg2 
    print (args) 
    print args['x'] 

args ={'x':2, 'y':3} 
foo(1,2,**args) 

Hangi baskılar, beklendiği gibi: Bir çoklu işlem göreve aynı stili kelime argümanları geçmek çalışıyorum, ancak kullanımı **, args listesinde bir yazım hatasıdır

1 2 
{'y': 3, 'x': 2} 
2 

. Benim fonksiyonum, stretch() iki konumsal argüman ve n anahtar kelime argümanları alacağını biliyorum.

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step),**args)) for i in range (0, y, step)] 

Anahtar kelime bağımsız değişkenlerini çok işlemciye geçirmek mümkün mü? İşlem mi? Öyleyse nasıl? Değilse neden?

+1

'kwargs' kwargs'larını ve' args' adını vermelisiniz. – kev

cevap

15

Anahtar sözcük arşivi olarak kullandığınız sözlük, Process nesnesine kwargs parametresi olarak geçirilmelidir.

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step)),kwargs=args) for i in range (0, y, step)] 
+0

Bunu kazıyın. Bunu da() hareket ettirmek için çalıştı. Teşekkürler! – Jzl5325

İlgili konular