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()
  • Вопрос задан
  • 424 просмотра
Решения вопроса 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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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