Aşağıda pratik olarak bir kod yazdım. Bir döngüm var. Listemdeki birimleri for döngüsüne tek tek sokuyorum. Fakat belli bir koşul sağlandığında döngünün aynı isimle baştan çalışmasını istiyorum.
Yani sıradaki isime geçmeden for döngüsünü tekrar çalıştıracağım.
Şimdiden teşekkürler…
isimler = ["ihsan", "ahmet", "yılmaz", "mehmet"]
for isim in isimler:
if herhangibirkoşul:
#aynı isim olacak şekilde döngüyü devam ettir
Mesela aşağıdaki kodlarda sürekli bir değişkenle işlem yapılıyor. Döngünün içindeki diğer değişkenlere sıra gelemiyor.
import time
bos_liste = []
def f(isimler):
for isim in isimler:
if isim.startswith("i"):
while True:
print(bos_liste)
bos_liste.append(isim)
time.sleep(1)
_isimler = ["ihsan", "ahmet", "yılmaz", "mehmet"]
f(_isimler)
Hocam programımda böyle bir durum mevcut. Tam olarak programı açıklayamayacağım fakat şu mantıkla anlatabilirim:
10 tane mail göndermek istiyorum mesela. Bu 10 mailin for döngüsü ile gitmesini sağlıyorum. Dördüncü mailde sorun çıktı gönderilemedi bu yüzden bu mailin tekrar göndermek için denenmesi gerekiyor.
Tam olarak cevabi yazamayacagim fakat su mantikla anlatabilirim:
for mail in mails:
send_mail_with_retries(mail)
Ikinci opsiyon ise work queue kullanmak. Isleri bir queue’ya atip patlayanlari tekrar denenmek uzere queue’un sonuna atmak. Bozuklarin sagliklilari az bloke etmesi, paralellestirilebilme gibi sayisiz faydalari var.