Online Teknoloji ve Haber Bloğu
Python Lisanındaki Üreteçler Nedir? Neden Kullanılmalı?

Python Lisanındaki Üreteçler Nedir? Neden Kullanılmalı?

Bir pratiğin kodlanma süreci, ziyadesiyle düşünceli bir süreçtir. Yazılımcılar, binlerce satır kodlama yaparken bu kodların düzgün olarak çalışabilmesi için ağır bir efor sarf ederler. Aksi takdirde yazılan kodlar çalışmayacaktır ve bu da yazılımcılar için önemli bir sorun oluşum ediyor.

Geliştiriciler, bir uygulamayı hazır hale getirebilmek için, tatbikin kullanılacağı platform kapsamında çeşitli yazılım lisanları kullanabiliyorlar. “C”, “Java”, “Swift” ve “Python” üzere programlama lisanlarını bu bağlamda örnek olarak gösterebiliriz. Bu haberimizin konusu ise Python programa lisanında kullanılan, İngilizce olarak “Generators”, Türkçe karşılığı ise “Üreteç” olarak geçen komutlardan bahsedeceğiz. “Üreteçler nedir?” ve “Neden Kullanılmalı?” sorularının cevaplarını, bu haberimizde görebileceğiz.

Üreteçler, Python yazılım lisanında kullanılan tesirli yollardan bir adedidir. Profesyonel geliştiriciler, bu komutları kullanarak hem daha düzgün bir kod tertibine sahip oluyorlar hem de bu komutlar sayesinde tatbikler daha rahat bir formda çalışabiliyor.

Yazılım geliştiriciler, bir kodlama sırasında sıralı olgulardan sık sık faydalanıyorlar. Bu sayede datalar rahat bir biçimde kullanılıyor, kimi hengam da veritabanlarında depolanıyor. Lakin bu durumun bir dezavantajı bulunuyor. Sıralı datalarda bulunan öğelerin sayısı ön görülemez. Kimi hengam makul sayılarda öğeler bulunurken kimi vakitse çok sayıda öğe olabilir ve bu da tatbikin çalışma performansını tesirler. Artık, sıralı donelerden ve listelerden oluşan bir kod örneğini inceleyelim.

def scale_to_log10(till_number):  
log10_number_seq = []  
for num in range(1, till_number):  
log10_number_seq.append(math.log10(num))  
return log10_number_seq

Bu kod, bakıldığı devir ziyadesiyle kısa üzere görünebilir. Lakin kodların arasında bulunan “range” komutu, yazılımcıya mütemadi bir döngü oluşturacaktır. Bu döngü, sonsuz bir bellek sahasında meselesiz çalışabilir fakat bu döngünün boyutu artmaya başladığı devir işler külliyen karışacaktır. Örnek vermek gerekirse bu döngü 4 GB'lik bir boyuta sahip olabilir. Fakat ayrılan bellek 2 GB olursa sistem çökecek ve süreç yarıda kalacaktır. İşte tam da bu noktada generators komutlarından faydalanılıyor. Geliştiriciler, generators komutlarını kullanarak yalnızca muhtaçlık olduğu vakit bu döngünün içerisine giriyorlar ve bu da RAM ve işlemci tasarrufunu direkt etkiliyor. Bu yol sayesinde tatbikler, daha rahat bir formda çalışıyorlar ve rastgele bir çökme durumu yaşanmıyor.

Artık de geliştiricilerin, bu komutları nasıl kullandıklarına bakalım;

def scale_to_log10(till_number):  
for num in xrange(till_number):  
yield math.log10(num)

Bu kod, temelde yukarıda bulunan kodlarla birebir işlevi görüyor. Yalnızca bu kodun öğeleri sürece biçimi biraz daha farklı. 2. koddaki ufak farklar, kod kesitinin yalnızca o an işlenen öğeyi belleğe aktarılmasını sağlıyor. Bu da hem gereksiz boyutları ortadan kaldırıyor hem de işlemci ve RAM tasarrufunun optimizasyonunu sağlıyor.

Bir Cevap Yazın

Kategoriler

Reklam Alanı

Son Yorumlar

    Reklam Alanı

    ×
    %d blogcu bunu beğendi: