Задать вопрос
sanya84
@sanya84
Фанатик Python 3

Главный процесс и поток чтооо? Или как передать аргумент в функцию класса Thread?

Всем привет! Вот решил посмотреть в питоне на параллельные вычисления) задача сообщать когда переменная i == определённому значению
Но скрипт выполняет задуманное только на последнем elif
как это можно объяснить?
ниже привожу
код
from threading import Thread 
from time import sleep

for i in range(4):
    print(type(i))
    sleep(1)
    print(i)

def f(i):
    if int(i) == 1:
        print('i=',i)
        
    elif i == 2:
        print('i=',i)
        
    elif i == 3:
        print('i=', i)
        
t = Thread(target=f(i))
t.start()
  • Вопрос задан
  • 433 просмотра
Подписаться 1 Оценить 10 комментариев
Решения вопроса 2
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Наверное, потому что вы в функцию передаете i равную 3м

И вызов потока неправильный
t = Thread(target=f, args=(i,))
Ответ написан
sanya84
@sanya84 Автор вопроса
Фанатик Python 3
Вопрос решён ) надо было сделать так
from threading import Thread 
from time import sleep

for i in range(4):
    print(type(i))
    def f(i):
        if int(i) == 1:
            print('i=',i)
        
        elif i == 2:
            print('i=',i)
        
        elif i == 3:
            print('i=', i)
        
    t = Thread(target=f, args=(i,))
    t.start()
    sleep(1)
    print(i)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 дек. 2024, в 16:13
50000 руб./за проект
23 дек. 2024, в 15:25
5000 руб./за проект
23 дек. 2024, в 14:47
4500 руб./за проект