Python Personel Yönetici Class Örneği
Programda iki tane sınıf(class) tanımladım. Tanımladığım Personel sınıfı süper sınıftır. Personel sınıfında yazdığım fonksiyonları, değişken tanımlamaları ve bilgilerin yazdırılması tüm çalışanlar için ortaktır. Yönetici sınıf ise personel sınıfının fonksiyonlarını ve değişkenlerini kullanılabilen sınıftır. Burada ki yönetici sınıfının ayrılması sebebi: maas ve yönetim becerisi ile ilgilidir. Personel sınıfı(Super sınıf) sayesinde diğer kadrolara göre de sınıflar yaratılabilir.
Personel Sınıfındaki Fonksiyonlar(Numaralandırılmış)
1 – Fonksiyon nesne oluştururken isim, maas, yetenek, rutbe değerlerinin alınmasını sağlıyor.
2 – Çalış fonksiyonu çağrılması ile personelin gün sayısı bir artıyor ve çalıştığı söyleniyor.
3 – Terfi fonksiyonu çağrılması ile personele atanan maaş değeri artıyor.(200)
4 – Bilgileri göster fonksiyonu çağrılması ile ekrana isim, yetenek, maaş, toplam çalışılan gün sayısı, personelin rütbesi yazılıyor.
class Personel(): mesai = "9 -18" sirket = "AS-AS" def __init__(self,isim,maas,yetenek,rutbe): 1 self.isim = isim self.yetenek = yetenek self.maas = maas self.gunsayisi = 0 self.rutbe = rutbe, def calıs(self): 2 print(self.isim,"çalışıyor") self.gunsayisi+=1 def terfi(self): 3 print("Tebrikler ",self.isim,"Terfi aldın") self.maas+=200 def bilgileriGoster(self): 4 print("*-"*20) print("Personelin ismi: ",self.isim) print("Personelin yetenekleri: ",self.yetenek) print("Personelin maaşı: ",self.maas) print("Personelin toplam gün sayısı",self.gunsayisi) print("Personelin konumu: ",self.rutbe) print("*-"*20)
Asim adında Personel sınıfından bir nesne oluşturulması ve fonksiyonların kullanımı
asim = Personel("asim",1600,"linux,java,pentest","Mühendis") asim.calıs() asim.bilgileriGoster()
Yönetici sınıfının(class) oluşturulması
Yonetici sınıfı (Personel) sınıfının tüm tanımlamalarını ve fonksiyonlarını kullanabiliyor. Yönetici sınıfı maaş ve yönetim beceresi gibi farklılıklar nedeniyle özelleştirilmesi için gerekli
super() fonksiyonu bir üst sınıfta bulunan tanımlamalara yenisinin eklenmesini sağlıyor.
1 – Fonksiyon Personel sınıfından farklı olarak 523 tl maaş artırımı yapıyor.
2 – Personel isim, maas, yetenek, rutbe ve yonetimBeceresini dışarıdan almayı sağlıyor. super() fonksiyonu ile isim, maas, yetenek, rutbe, tanımlamalarını personel sınıfından alıyor.
3 – super() fonksiyonu ile Personel sınıfındaki bilgileriGoster fonksiyonunu kullanıp ek olarak da yönetim beceresini gösteriyor.
4 – super() fonksiyonu ile Personel sınıfındaki calıs fonksiyonu çağırıyor ve yönetim beceresini 0.5 olarak artırıyor.
class Yonetici(Personel): def terfi(self): 1 self.maas+=523 def __init__(self,isim,maas,yetenek,rutbe,yonetimBecerisi): 2 super().__init__(isim,maas,yetenek,rutbe) self.yonetimBecerisi = yonetimBecerisi def bilgileriGoster(self): 3 super().bilgileriGoster() print("Yonetim becerisi: ",self.yonetimBecerisi) print("*-"*20) def calıs(self): 4 super().calıs() self.yonetimBecerisi+= 0.5 print("Yönetim becerisi artırıldı.")
Emel nesnesini oluşturup,Yonetici sınıfına ekleme
emel = Yonetici("Emel",2000,"İnsan kaynakları","Yönetici",50) emel.calıs() emel.bilgileriGoster()
Python Class Örneği Tamamı
class Personel(): mesai = "9 -18" sirket = "AS-AS" def __init__(self,isim,maas,yetenek,rutbe): print("Yeni personel oluşturuldu",isim) self.isim = isim self.yetenek = yetenek self.maas = maas self.gunsayisi = 0 self.rutbe = rutbe def calıs(self): print(self.isim,"çalışıyor") self.gunsayisi+=1 def terfi(self): print("Tebrikler ",self.isim,"Terfi aldın") self.maas+=200 def bilgileriGoster(self): print("*-"*20) print("Personelin ismi: ",self.isim) print("Personelin yetenekleri: ",self.yetenek) print("Personelin maaşı: ",self.maas) print("Personelin toplam gün sayısı",self.gunsayisi) print("Personelin konumu: ",self.rutbe) print("*-"*20) class Yonetici(Personel): def terfi(self): self.maas+=523 def __init__(self,isim,maas,yetenek,rutbe,yonetimBecerisi): super().__init__(isim,maas,yetenek,rutbe) self.yonetimBecerisi = yonetimBecerisi def bilgileriGoster(self): super().bilgileriGoster() print("Yonetim becerisi: ",self.yonetimBecerisi) print("*-"*20) def calıs(self): super().calıs() self.yonetimBecerisi+= 0.5 print("Yönetim becerisi artırıldı.") asim = Personel("asim",1600,"linux,java,pentest","Mühendis") emel = Yonetici("Emel",2000,"İnsan kaynakları","Yönetici",50) asim.calıs() asim.bilgileriGoster() emel.calıs() emel.bilgileriGoster()
fonksiyonda geçen super() ‘ın amacı nedir?
Personel tablosundaki fonksiyonların yönetici tablosunda kullanılabilmesi için yazılıyor. Super () in sağında yazan fonksiyon kalıtım yapmış oluyor
Harika bir ornek , super bir anlatım… Emeginiz icin çok teşekkür ederim…
Elinize sağlık class konusunu öğrenmeme yardımcı olacak bir örnekti. Devamının gelmesini beklerim.
ellerine sağlık cok tesekkur edrim.
Pycharmda denedim ama hata veriyo 4. Satırdan sonra
Yanlışlık olmuş ama ben import main den sonra personelin gün sayısını maaşını nasıl sorucağımızı anlamadım yada ben beceremedim sizde *-*-*-*-diye gidiyor ama bende öyle olmadı neden dir acaba
tebrikler, gayet guzel anlasilir bir ornekti.