- 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
Gönderen
Adsız
Nesnel programlama sizin programınızı gerçek dünyadaki sistemler gibi modelleyebilmenizi sağlayan bir güzelliktir , kim icat ettiyse elleri öpülesi mukaddes bir insandır.
Kaydol:
Kayıt Yorumları (Atom)
girintiye dikkat!.. malum python kodluyorsunuz. :)
YanıtlaSilopppsss :) düzelttim uyarı çin teşekkürler.
YanıtlaSilself.age = 0 [1]
YanıtlaSilBuradaki [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ıtlaSilself.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