class Ulke():
nufus = 1000000
gelismislik_duzeyi = "Yüksek"
insan_gucu = 45000
yonetim_bicimi = "Demokrasi"
Yukarıda tanımladığımız sınıfta, Ulke sınıfından üretilen her nesne aynı özelliklere ve aynı değerlere sahip olacaktır. Ülkeler hakkında bilgi almak için sınıf içerisine bilgi_al fonksiyonu ekliyoruz.
class Ulke():
nufus = 1000000
gelismislik_duzeyi = "Yüksek"
insan_gucu = 45000
yonetim_bicimi = "Demokrasi"
def bilgi_al(self):
print("""
Nüfus: {}
Gelişmişlik Düzeyi: {}
İnsan Gücü: {}
Yönetim Biçimi: {}
""".format(self.nufus,self.gelismislik_duzeyi,self.insan_gucu,self.yonetim_bicimi))
Kanada = Ulke()
Finlandiya = Ulke()
Kanada.bilgi_al()
Finlandiya.bilgi_al()
bilgi_al fonksiyonu(sınıf metotu) eklenmiştir. Peki neden fonksiyon parametresinde self kullanıldı? self, bir referanstır ve sınıf içerisinde yazılan her fonksiyonun parametresinde ilk olarak yazılmalıdır. Aksi durumda hata ile karşılaşırız. self referansı, sınıftan üretilen nesnenin kendisini temsil eder aslında. Birazdan daha açık şekilde bunun üzerinden geçeceğiz.
Yukarıdaki kodda bir nesnenin sınıftan nasıl oluşturulduğunu gördük.
Kanada = Ulke(). Oluşturulan her iki nesneden de bilgi almak için sınıf içerisinde yer alan bilgi_al metotunu kullandık.Kanada.bilgi_al(). Yukarıdaki kod çalıştırıldıktan sonra her iki nesneninde aynı bilgilere sahip olduğunu gördük. Nüfus: 1000000
Gelişmişlik Düzeyi: Yüksek
İnsan Gücü: 45000
Yönetim Biçimi: Demokrasi
Nüfus: 1000000
Gelişmişlik Düzeyi: Yüksek
İnsan Gücü: 45000
Yönetim Biçimi: Demokrasi
Ülke sınıfında üretilen her ülke nesnesinin farklı bilgilere sahip olması için sınıf içerisinde kurucu fonksiyon kullanmalıyız.
__init__() Kurucu Fonksiyon
__init__ Python programlama dilinde kurucu fonksiyondur. Sınıf tanımladığınız anda Python varsayılan olarak arkaplanda __init__ fonksiyonunu çalıştırmaktadır. Ancak eğer biz sınıf içerisinde __init__ fonksiyonunu tanımlarsak varsayılan __init__ fonksiyonu kullanılmaz. Kurucu fonksiyonlar, farklı değerlere sahip nesneler üretmemizi sağlar. Ulke sınıfına kurucu fonksiyonumuzu ekleyelim.class Ulke():
def __init__(self,isim,nufus,gelismislik_duzeyi,insan_gucu,yonetim_bicimi):
self.isim = isim
self.nufus = nufus
self.gelismislik_duzeyi = gelismislik_duzeyi
self.insa_gucu = insan_gucu
self.yonetim_bicimi = yonetim_bicimi
def bilgi_al(self):
print("""
Nüfus: {}
Gelişmişlik Düzeyi: {}
İnsan Gücü: {}
Yönetim Biçimi: {}
""".format(self.nufus,self.gelismislik_duzeyi,self.insan_gucu,self.yonetim_bicimi))
Kurucu fonksiyonumuzu ekledikten sonra sınıftan nasıl nesne üreteceğimize bakalım. Öncelikle Kanada ve Finlandiya isimli iki tane nesne oluşturuyoruz. Ancak bu sefer argüman kısmını aşağıdaki gibi kurucu fonksiyonumuzun parametrelerine uygun olacak şekilde dolduruyoruz.
Kanada = Ulke("Kanada", 36000000, "Yüksek", 100000, "Demokrasi")
Finlandiya = Ulke("Finlandiya", 5000000, "Çok Yüksek", 58000, "Demokrasi")
Kanada.bilgi_al()
Finlandiya.bilgi_al()
Eğer kullanıcı nesne oluştururken argümanları eksik girerse kurucu fonksiyonunu parametre değerlerini aşağıdaki gibi varsayılan olarak değer atayabiliriz.
class Ulke():
def __init__(self,isim="-",nufus="-",gelismislik_duzeyi="-",insan_gucu="-",yonetim_bicimi="-"):
self.isim = isim
self.nufus = nufus
self.gelismislik_duzeyi = gelismislik_duzeyi
self.insa_gucu = insan_gucu
self.yonetim_bicimi = yonetim_bicimi
Nesne Silme
Nesne silmek için del operatörü kullanılır.>>> Kanada
<__main__.Ulke object at 0x03262D10>
>>> del Kanada
>>> Kanada
Traceback (most recent call last):
File "", line 1, in
Kanada
NameError: name 'Kanada' is not defined
Hiç yorum yok:
Yorum Gönder