Oopyle ilgili bir soru

Sorun yaşadığınız yeri tam olarak anlayamadım, ben size sadece __init__'de değiştirmeniz gereken yeri söyledim ama siz melumat’ı değiştirmişsiniz.

Neye çeviremediniz?

Bu arada bu guc niteliğinin de diğer nitelikler gibi __init__'e parametre olarak verilmesi daha iyi olur. İsterseniz öntanımlı değerini de 0 yapabilirsiniz.

hayir hocam __init__idegistirdim

ornegin:bir listeye

bunu yapdim.ama bu pekte uygun bir yontem degil.

genel bir class olusturdum.daha sonra mudur ve isci classina genel classini miras aldim.ama olmadi:



class genel():
    isciler = []
    def __init__(self,ad,soyad,maas,status):
        self.guc = 0
        self.ad = ad
        self.soyad = soyad
        self.maas = maas
        self.status = status
        liste = [self.ad,self.soyad,self.maas,self.status,self.guc]
        self.isciler.append(liste) 
    def melumat(self):
        # liste = [self.ad,self.soyad,self.maas,self.status,self.guc]
        # self.isciler.append(liste) 
        print(f"adi: {self.ad}\nsoyadi: {self.soyad}\nmaasi: {self.maas}\nstatusu: {self.status}\ngucu: {self.guc}\n")
    @classmethod
    def personel(cls):
        print(cls.isciler)






class isci(genel):
    def __init__(self,ad,soyad,maas,status):
        super().__init__(ad,soyad,maas,status)
        self.guc = 10
        # liste = [self.ad,self.soyad,self.maas,self.status,self.guc]




class mudur(genel):
    def __init__(self,ad,soyad,maas,status):
        super().__init__(ad,soyad,maas,status)
        self.guc = 100
        # liste = [self.ad,self.soyad,self.maas,self.status,self.guc]







isci1 = isci("vahid","veliyev",700,"isci")
isci1.melumat()
mudur1 = mudur("abdullah","veliyev",1000,"mudur")
mudur1.melumat()
print(mudur1.guc)
genel.personel()

Peki çalışmayan yer neresi?

isci örneklerini nasıl bir lisyeye çevirmek istiyorsunuz bilmiyorum, niye böyle bir ihtiyacınız var ki zaten?

isci.isciler listesinin elemanları isci sınıfının örnekleri, yani isci.isciler[0].ad gibi bir şey geçerli bir kullanım. Ama metodlar içinde self’e erişiminiz varken isciler listesi ile ne işiniz var anlamadım.

Bence guc niteliğinin isci sınıfında hardcoded bir değer alması iyi bir tasarım değil, mudur sınıfında bunu sonradan değiştirmeniz de buna bir işaret.

Ben yukarıdakini değil, bunu yapın demiştim:

Hatta en başta değiştirin dediğim yer buydu…

calisiyor ama,bir liste dondurmesini istiyorum.ama obje donduruyor.

tum alt sinif orneklerini tabam sinifin sinif niteliginde bir listede tutmak istiyorum.

belkide haklisiniz

dedigim gibi calisiyor.ama obje dondutuyor ben liste dondurmesini istiyorum.

Obje döndüren ne? Hangi fonksiyon?

Zaten bütün fonksiyonlar obje döndürmek zorunda. Obje yerine -mesela- “isci örneği” derseniz daha iyi anlarım sizi.