Soru Class mantığını Anlamak

Bu konuyu okuyanlar

Toki4182

Asistan
Katılım
18 Temmuz 2021
Mesajlar
142
Reaksiyon puanı
70
Puanları
28
Yaş
22
Class mantığını anlamak için şöyle bişey yaptım. Bu olmuş mu? Hatam vs. var mı?

Python:
class person():
    def __init__(self,name,surname,birtday_year,unvan):
        self.name = name
        self.surname = surname
        self.birtday_year = birtday_year
        self.unvan = unvan
class teacher(person):
    def __init__(self, name, surname, birtday_year, unvan, salary):
        super().__init__(name, surname, birtday_year, unvan)
        self.salary = salary
    def display_salary(self):
        print(f"{self.name} isimli öğretmenin maaşı {self.salary} ₺'dir.")
    def tax(self):
        self.taxi = (self.salary / 350) * 60
        print('Vergi miktarı: ',self.taxi)
    def newSalary(self):
        self.tax()
        self.salary = (self.salary - self.taxi)
        print('Yeni maaş:',self.salary)
    def teacherInfo(self):
        print("{} {} isimli öğretmen, {} ünvanına sahiptir ve {} ₺ maaş almaktadır.".format(self.name,self.surname,self.unvan,self.salary))

r1 = teacher('Muhammed Ali Fatih','Erbakan',1979,'Doktor',6100)
r1.newSalary()
r1.teacherInfo()
 

Eratosthenes

Müdavim
Katılım
15 Ocak 2021
Mesajlar
1,235
Çözümler
1
Reaksiyon puanı
853
Puanları
113
Class mantığını anlamak için şöyle bişey yaptım. Bu olmuş mu? Hatam vs. var mı?

Python:
class person():
    def __init__(self,name,surname,birtday_year,unvan):
        self.name = name
        self.surname = surname
        self.birtday_year = birtday_year
        self.unvan = unvan
class teacher(person):
    def __init__(self, name, surname, birtday_year, unvan, salary):
        super().__init__(name, surname, birtday_year, unvan)
        self.salary = salary
    def display_salary(self):
        print(f"{self.name} isimli öğretmenin maaşı {self.salary} ₺'dir.")
    def tax(self):
        self.taxi = (self.salary / 350) * 60
        print('Vergi miktarı: ',self.taxi)
    def newSalary(self):
        self.tax()
        self.salary = (self.salary - self.taxi)
        print('Yeni maaş:',self.salary)
    def teacherInfo(self):
        print("{} {} isimli öğretmen, {} ünvanına sahiptir ve {} ₺ maaş almaktadır.".format(self.name,self.surname,self.unvan,self.salary))

r1 = teacher('Muhammed Ali Fatih','Erbakan',1979,'Doktor',6100)
r1.newSalary()
r1.teacherInfo()
Ben bir hata göremedim bence mantık doğru gibi
Mesaj otomatik birleştirildi:

Class mantığını anlamak için şöyle bişey yaptım. Bu olmuş mu? Hatam vs. var mı?

Python:
class person():
    def __init__(self,name,surname,birtday_year,unvan):
        self.name = name
        self.surname = surname
        self.birtday_year = birtday_year
        self.unvan = unvan
class teacher(person):
    def __init__(self, name, surname, birtday_year, unvan, salary):
        super().__init__(name, surname, birtday_year, unvan)
        self.salary = salary
    def display_salary(self):
        print(f"{self.name} isimli öğretmenin maaşı {self.salary} ₺'dir.")
    def tax(self):
        self.taxi = (self.salary / 350) * 60
        print('Vergi miktarı: ',self.taxi)
    def newSalary(self):
        self.tax()
        self.salary = (self.salary - self.taxi)
        print('Yeni maaş:',self.salary)
    def teacherInfo(self):
        print("{} {} isimli öğretmen, {} ünvanına sahiptir ve {} ₺ maaş almaktadır.".format(self.name,self.surname,self.unvan,self.salary))

r1 = teacher('Muhammed Ali Fatih','Erbakan',1979,'Doktor',6100)
r1.newSalary()
r1.teacherInfo()
bende pythonu yeni öğrendim ben hata göremedim ama hata varsa kusura bakma yanlış yönlendirmiş oluyorum
 

Toki4182

Asistan
Katılım
18 Temmuz 2021
Mesajlar
142
Reaksiyon puanı
70
Puanları
28
Yaş
22
Ben bir hata göremedim bence mantık doğru gibi
Mesaj otomatik birleştirildi:


bende pythonu yeni öğrendim ben hata göremedim ama hata varsa kusura bakma yanlış yönlendirmiş oluyorum
Hatadan kastım şöyle yapsan daha iyi olur, standardı budur... gibi öneriler aslında. Sağolasın, teşekkür ederim :)
 

Emnn

Jet Sesi, Özgürlüğün Sesidir!
Emektar
Katılım
3 Mayıs 2021
Mesajlar
2,206
Çözümler
8
Reaksiyon puanı
1,839
Puanları
113
Bir proje üzerinde çalışarak Class mantığını daha iyi anlıyacağını düşünüyorum
 

Ben Kenobi

Müdavim
Katılım
6 Kasım 2011
Mesajlar
7,336
Reaksiyon puanı
3,155
Puanları
113
sınıf mantığını anlamak için ortalamanın üzerinde bir işi sınıflı ve sınıfsız şekilde yapman gerekir. (mesela bir satranç oyunu)
sınıfsız yaptığında göreceksin ki onlarca farklı değişken oluşturmak zorunda kalacaksın misal
ahmetin_maasi, mehmetin_maasi, necminin_maasi gibi ve parametrelerin bir kısmını global yapıp tüm fonksiyonlara açman gerekecek bir kısmını da, fonksiyondan fonksiyona sonra oradan da başka fonksiyona defalarca aktarman gerekecek hatta bu bağlamda input parametreleri solda, output parametreleri sağda olsun diye düşünmeye başlayacaksın.
python nesne yönelimli tüm güçlere sahip değil, bu bağlamda c++, java, c# ile nesne yönelimli programlamayı daha iyi keşfedebilirsin.
özellikle polimorfizm ve virtual method konularına odaklan misal görsel elementlerde(buton, textbox vs gibi) eventlerin çoğu virtual metod kullanır, bu sayede event seninle alakasız bir yerden tetiklenir ama senin yazdığın metod çağırılır
 
Üst