Merhaba arkadaşlar ,
Bugün Python generators konusuna bakıyordum ve aklıma takılan bir yer oldu . Hemen alt tarafa kodları bırakarak kodlar üzerinden sorumu soruyorum şimdiden teşekkürler.
‘’’
1.Örnek
list1 =(x for x in range(0,10))
l=list1
k=list1
print(next(l)) #0
print(next(l)) #1
print(next(l)) #2
print(next(k)) #3
print(next(k)) #4
2.Örnek
def generator():
print(f"1.uretec : ",end="")
yield 1
print(f"2.uretec : ",end="")
yield 2
print(f"3.uretec : ",end="")
yield 3
a=generator()
b=generator()
print(next(a)) # 1.uretec : 1
print(next(a)) # 2.uretec : 2
print(next(b)) # 1.uretec : 1
‘’’
Sorum şu ;
- örnekteki generator’üm için ‘l’ ve ‘k’ olarak iki değişken tanımladım ve next() fonksiyonu ile önce ‘l’ ile üç kere ardından da ‘k’ ile de iki kere fonksiyonumu çağırdım ve çıktılar 0-1-2-3-4 olarak geldi ki ‘k’ değişkenim ile çağrım yaptığımda ‘l’ değişkenimin kaldığı yerden devam etti dikkat ederseniz.
Aynı sonucu 2.Örnek için de beklerken yani ‘a’ ve ‘b’ değişkenlerim için de benzer bir sonuç beklerken (‘b’ değişkenimi çağırdığımda ‘a’ nın kaldığı yerden sonuç döndürmesini bekliyordum.) ‘b’ değişkenim ile fonksiyonu çağırdığımda bana dönüş olarak ilk yield değeri döndü ve bu durumu henüz anlayamadım .
Yardımcı olursanız sevinirim .
Teşekkürler .