-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerator.py
More file actions
47 lines (34 loc) · 1.29 KB
/
Copy pathgenerator.py
File metadata and controls
47 lines (34 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 14 17:57:25 2022
@author: ilhan
"""
#yield
"""
-iterasyon -> yineleme
-generator -> değerleri bellekte saklamaz, yeri gelince anında üretir.
-yield -> fonksiyon return olarak generator döndürecekse, return yerine yield keyword'ü ile yapar.
"""
liste = [1,2,3,4]
for i in liste:
print(i)
#iterasyonlarda listenin içerisindeki elemanlar memory'de tutulur.
#eğer veri çok fazla ise bellekte çok fazla yer kaplandığı anlamına gelir.
generator = (x for x in range(1,4)) #bir liste oluşturulup, her bir değer x olarak dışarı aktarılır.
for i in generator:
print(i)
#ilk iterasyonda 1 oluşturulur.
#diğer iterasyonda 1 unutulup 2 oluşturulur.
#son iterasyonda da 2 unutulup 3 oluşturulur.
#böylelikle memory dolmamış olur.
def createGenerator():
liste = range (1,4) #1-> inclusive, 4-> exclusive
for i in liste:
yield i
generator2 = createGenerator()
print(generator2) #hafızadaki adresi görülür.
for i in generator2:
print(i) #1,2,3 yazdırılır.
#görüntü işlemede resimleri bir anda yaratıp tek bir liste içerisinde depolamak yerine,
#generator ile yaratılıp memory'den avantaj sağlanır.
#liste içerisine yaratılırsa, resim sayısı arttığı zaman bellek yeterli olmayacaktır.