Используйте вывод потока вне функции потоков. (Python)

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

def f():
  response = 1+1 
threading.Thread(target=f).start()
print(response)

Точно так же, как и с любой обычной функцией. Использование потоков не меняет этого. Вы сохраняете его в глобальном, или добавляете его к какому-то глобальному объекту, или передаете объект в функцию потока и заставляете его обновлять его .. Единственное изменение с потоковой передачей заключается в том, что глобальный объект не будет обновлен до тех пор, пока поток не будет завершен и вы .join с ним.

Tim Roberts 31.03.2021 03:52

Глобальная переменная не работает. Я создаю бота Discord, поэтому, скорее всего, несколько человек будут хранить информацию в глобальной переменной. Таким образом, пользователь может получить от кого-то еще вывод @TimRoberts

x64dgb231 31.03.2021 04:03

Взгляните на concurrent.futures!

Samwise 31.03.2021 04:09

Вы можете создать глобальный список и назначить каждому потоку идентификационный номер, который является его слотом в списке. Другой способ - использовать Queue. Попросите потоки подавать свой вывод в очередь и выдавать результаты по мере их завершения. Концепция concurrent.futures - еще один очень хороший метод.

Tim Roberts 31.03.2021 05:33
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
14
0

Другие вопросы по теме

Похожие вопросы

Как получить значения столбцов фрейма данных в другой фрейм данных в качестве нового столбца после сопоставления значений в столбцах, которые есть в обоих фреймах данных?
Как определить порядок каналов только на основе массива numpy?
PANDAS вводит определенный идентификатор на основе подстановочного знака
Три задачи, которые я не могу понять (кортежи, добавление и словари)
Pycharm и Linux показывают разные ошибки при импорте модулей из разных каталогов
Передать аргумент функции, которая хранится как значение в словаре
Как создать массив из двух двумерных массивов на основе условных выражений и случайного выбора с помощью PYTHON
Добавление многоуровневого столбца в одноуровневый фрейм данных pandas
Pytest @parametrize не работает после первого теста из-за замкнутого цикла событий в ORM Tortoise
Xarray - применить функцию к временному измерению DataArray и добавить результат как переменную