AssertionError при потоковой передаче в Python - программирование
Подтвердить что ты не робот

AssertionError при потоковой передаче в Python

Я пытаюсь запустить некоторую простую потокование в Python, используя:

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

other code runs in here

t1.join()

К сожалению, я получаю сообщение об ошибке:

"AssertionError: аргумент group должен быть ничем пока"

Я раньше не выполнял потоки в Python, поэтому я немного не уверен, что происходит не так. Кто-нибудь знает, в чем проблема?

Я не уверен, что это вообще актуально, но анализ - это метод, импортированный из другого файла.

У меня был один последующий запрос. Анализ возвращает словарь, как бы я хотел назначить это для использования в исходном методе?

Спасибо

4b9b3361

Ответ 1

Вместо этого вы хотите указать параметр ключевого слова target:

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

Вероятно, вы должны сделать analysis цель запуска, но 'samplequery аргумент при запуске:

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

Первым параметром Thread() является аргумент group, и он в настоящее время принимает None в качестве аргумента.

Из threading.Thread() документации:

Этот конструктор всегда должен вызываться с помощью аргументов ключевого слова. Аргументы:

  • группа должна быть None; зарезервировано для будущего расширения при реализации класса ThreadGroup.
  • target - вызываемый объект, вызываемый методом run(). По умолчанию None, что означает, что ничего не вызывается.

Ответ 2

Вам необходимо указать атрибут target:

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