2013-03-11 13 views
14

Próbuję uruchomić kilka prostych wątków w Pythonie przy użyciu:AssertionError podczas gwintowania w Pythonie

t1 = threading.Thread(analysis("samplequery")) 
t1.start() 

other code runs in here 

t1.join() 

Unforunately Dostaję błąd:

"AssertionError: group argument must be none for now"

nigdy nie zostały wdrożone w gwint Python wcześniej, więc nie jestem pewien, co się dzieje. Czy ktokolwiek ma pojęcie o problemie?

Nie jestem pewien, czy jest to istotne, ale analiza jest metodą importowaną z innego pliku.

Mam również jedno zapytanie uzupełniające. Analiza zwraca słownik, w jaki sposób powinienem go przypisać do użycia w oryginalnej metodzie?

Dzięki

Odpowiedz

29

Chcesz określić parametr target kluczowego zamiast:

t1 = threading.Thread(target=analysis("samplequery")) 

Prawdopodobnie oznaczało aby analysis docelowego uciekać, ale 'samplequery argument kiedy rozpoczęła:

t1 = threading.Thread(target=analysis, args=("samplequery",)) 

Pierwszy parametr do Thread() jest argumentem group, a obecnie przyjmuje jako argument tylko None.

Z threading.Thread() documentation:

This constructor should always be called with keyword arguments. Arguments are:

  • group should be None ; reserved for future extension when a ThreadGroup class is implemented.
  • target is the callable object to be invoked by the run() method. Defaults to None , meaning nothing is called.
+0

To wciąż przechodzi wynik 'analysis' do konstruktora wątku, który jest źle chyba wróci funkcyjnych na żądanie. –

+0

@ g.d.d.c: Tak, do tego doszło. :-) –

+0

Nie ma problemu, tylko upewniając się. :) –

5

Musisz podać atrybut target:

t1 = threading.Thread(target = analysis, args = ('samplequery',)) 
Powiązane problemy