Я продолжаю получать ошибку

Traceback (most recent call last):
File "main.py", line 37, in <module>
controller = threading.Thread(target=get_controller(), args=(q,))
TypeError: get_controller() missing 1 required positional argument: 'q'

Всякий раз, когда я пытаюсь создать поток в python. Вот код, который я использую

def get_controller(q):
    q.put(get_gamepad())
return

q = queue.Queue()
events = []
controller = threading.Thread(target=get_controller(), args=(q,))

Я знаю, что это не обычная ошибка, когда забывают добавить "," после первого аргумента в "args", но я не уверен, что еще это могло быть.

0
Tinkerman255 1 Сен 2020 в 06:43

2 ответа

Лучший ответ

Когда вы передаете цель, вы должны передать указатель на нужную функцию. Вместо этого вы вызываете функцию, что не является желаемым эффектом. Попробуйте вместо этого:

controller = threading.Thread(target=get_controller, args=(q,))
2
M Z 1 Сен 2020 в 03:51

Вы не должны использовать () в target=

threading.Thread(target=get_controller, args=(q,))
2
Aaron Keesing 1 Сен 2020 в 07:48