http___pythontr.blogspot.com_2008_08_nesnel-programlama-sizin-programnz.html_1.xml
1.1 2.1 3.1 4.1 4.2 4.3 4.4 5.1 6.1 7.1 8.1 9.1 11.1 12.1 14.1 15.1 16.1 17.1 18.1 19.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 31.1 32.1 33.1 34.1 35.1 36.1
Question How would one create an iterative function (or iterator object) in python? How-To Iterator objects in python conform to the iterator protocol, which basically means they provide two methods: __iter__() and next(). The __iter__ returns the iterator object and is implicitly called at the start of loops. The next() method returns the next value and is implicitly called at each loop increment. next() raises a StopIteration exception when there are no more value to return, which is implicitly captured by looping constructs to stop iterating. Here's a simple example of a counter: - class Counter: - def __init__(self, low, high): - self.current = low - self.high = high - def __iter__(self): - return self - def next(self): # Python 3: def __next__(self) - if self.current > self.high: - raise StopIteration - else: - self.current += 1 - return self.current - 1 - for c in Counter(3, 8): - print c This is easier to write using a generator, as covered in a previous answer: - def counter(low, high): - current = low - while current <= high: - yield current - current += 1 - for c in counter(3, 8): - print c David Mertz's article, Iterators and Simple Generators, is a pretty good introduction. Supplement * FAQ - What makes something iterable in python * FAQ - In Python, how do I determine if an object is iterable?
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.1 31.1 32.1 33.1 34.1 35.1
- Nesnel yaklaşımda bir sınıf yaratılır, sınıf bir genellemedir. Belli bir grup nesnenin ortak özelliklerini barındırır(örn: organism sınıfı bütün organizmalarda bulunan işlem ve özellikleri barındırır.) - Nesne bu sınıf'ın bir nesneye uygulanmasıdır animal = organism() yada human = organism() dediğimiz zaman buradaki animal ve human birer nesnedir. - Sınıf özellikleri bu sınıfa ait özelliklerdir. Örneğin her organizmanın bir yaşı vardır. Bu yaş bigisini organism sınıfı üzerinde age olarak tanımlarsak [1] daha sonra bu sınıfa ait nesnelerin age özelliğini animal.age şeklinde çağırabiliriz. - Bir sınıf kendi özelliklerini kendi kendine de değiştirebilir. Bu durumda self.ozellik = hede şeklinde kullanılır. Buradaki aslında self sınıfın kendisini ifade eder. Eğer bir fonksiyon içerisinde self. kullanılacaksa o fonksiyonun argümanı içerisinde self bulumalıdır.[2] - Bir nesne oluşturuluyorken __init__ fonksiyonu otomatik olarak çağırılır. - Bir nesne siliniyorken __del__ fonksiyonu otomatik olarak çağırılır. Eğer del(nesne) kullanılarak nesne silinmez ise nesne program sonunda silinir. - __init__ ve __del__ fonksiyonları self argümanı ile belirtilmek zorundadır. - örnek olarak bir organizma sınıfı şu şekilde tanımlanabilir. class organism: def __init__(self): print "ben doğdum" self.age = 0 [1] def grow_up(self,years): self.age += years def __del__(self): print "ben öldüm" animal = organism() print "animal age is :",animal.age animal.grow_up(3) # grow up 3 years print "animal age is :", animal.age 14 Ağustos 2008 Perşembe Pyton ve Nesnel Programlama 5 yorum: girintiye dikkat!.. malum python kodluyorsunuz. :)YanıtlaSil opppsss :) düzelttim uyarı çin teşekkürler.YanıtlaSil self.age = 0 [1]YanıtlaSil Buradaki [1] fazladan sanırım :) Ayrıca, sınıf içerisinde tanımladığımı tüm fonksiyonlara "self" parametresi göndermek zorunda mıyız? Eğer öyleyse -ki öyle görünüyor- bu saçma değil mi? Orada ki self şu işe yarıyor.YanıtlaSil self.age=0 diyorsan pythona diyorsun ki ben buna dışarıdan ulaşacam bana yer ayır. kopek=organizma() kopek.age derken kopek self ile ayırmış olduğun yere geçiyor. Yani self kullanmazsan dışarıdan erişemezsin. Umarım karıştırmamışımdır :S http://www.freenetpages.co.uk/hp/alan.gauld/tutdata.htm#class şuradaki örnekleride incelersen diğer dillerde de benzer kullanımlar olduğunu göreceksin.YanıtlaSil