Ana sayfa Genel Python – Iteratorlar

Python – Iteratorlar

8471
918
PAYLAŞ

Iteratorların Oluşturulması ve Kullanılması

Bu konuda iteratorları oluşturmayı, kullanmayı ve kendi objelerimizi iterable (üzerinde gezinilebilecek) olarak nasıl yazarız öğrenmeye çalışacağız. İlk olarak iteratorlar nedir anlamaya çalışalım

Iteratorlar nedir?

Iteratorlar aslında Pythonda çoğu yerde biz görmesek de kullanılır. Iteratorlar özellikle for döngülerinde , list comprehensionlarında, ve bir sonraki derste göreceğimiz generatorlarda karşımıza çıkar.

Iteratorlar en genel anlamıyla üzerinde gezinilebilecek bir objedir ve bu obje her seferinde bir tane eleman döner.

Pythonda kendisinden iterator oluşturabileceğimiz her obje iterable bir objedir.. Örneğin, demetlerden,listelerden ve stringlerden oluşturduğumuz bütün objeler iterable bir objedir.

Bir objenin iterable olması için hazır metodlar olan __iter()__ ve __next()__ metodlarını mutlaka tanımlaması gerekir.
Iterator oluşturma

Bir iterator objesini , iterable bir objeden (liste,demet,string vs) oluşturmak için Pythonda iter() fonksiyonunu kullanıyoruz ve bu objenin bir sonraki elemanını almak için next() fonksiyonu kullanıyoruz.

İşte iterable bir objeden bir iterator’ı bu şekilde oluşturup, next() fonksiyonuyla objenin sıradaki elemanını alabiliyoruz. Ancak eleman kalmayınca StopIterationhatasını alıyoruz. İşte iteratorların kullanımı bu şekildedir. Aslında biz farketmesek de Pythondaki for döngüleri aslında bir objenin üzerinde gezinirken iteratorları kullanır.

Aslında for döngülerinin iç yapısı şu şekildedir;

 

Kendi Iterable Objelerimizi Oluşturmak

Peki biz kendi oluşturduğumuz veritiplerini nasıl iterable yapacağız ? Bunun için oluşturacağımız sınıfların mutlaka __iter()__ ve __next()__ metodlarını tanımlaması gereklidir. Şimdi bir tane kumanda sınıfı oluşturalım ve bu sınıfı iterable yapalım.

Güzel ! Objemizi iterable yapmayı başardık. Objemiz iterable olduğuna göre artık for döngüsüyle üzerinde gezinebiliriz.

İşte Pythonda iteratorların kullanımı bu şekilde ! Artık iterator kullanmayı ve kendi objelerimizi iterable yapmayı biliyoruz.

 

PAYLAŞ
Önceki makalePython – Decorator Fonksiyonlar
Sonraki makalePython – Generatorlar
Odtü Bilgisayar Mühendisliğinden 2017 senesinde mezun oldum ve şu anda aktif olarak eğitmenlik yapıyorum. Ayrıca şu anda Odtü Bilgisayar Mühendisliği Yüksek Lisansta akademik hayatımı sürdürüyorum.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here