Factory-pattern <main> sorunu (Nesnelerin listesine erişemiyorum..)

factory-pattern
#1

Merhaba ; Nesne üretmede sorunla karşılaşmadım ancak nesnelerin listesine ulaşamıyorum

str methodunu denedim ancak bu seferde argüman hatası ile karşılaşıyorum
yardımcı olabilirseniz minnettar kalırım …

class Çalışan():
personel = []
def init(self, isim):
self.isim = isim

@classmethod
def personel_sayısını_görüntüle(cls):
    print("personel sayısı:")
    print(len(cls.personel))

def __str__(self):
    print('Personel listesi:')
    return  print(self.personel)



@classmethod
def personel_görüntüle(cls):
    print(Çalışan.personel)

if name == ‘main’:

def personele_ekle():
    isim = input("isminizi gir:")
    yeniobj = Çalışan(isim)

    Çalışan.personel.append(yeniobj)
    print
    (yeniobj.isim)
    print('{} adlı kişi personele eklendi'.format(yeniobj.isim))


while True:

    sorgu = input("d devam etmek , q göste çık  r iste ikinci fasıl")
    if sorgu == "d":
        personele_ekle()
        continue
    elif sorgu == "q":
        time.sleep(5)
        Çalışan.personel_görüntüle()
        Çalışan.personel_sayısını_görüntüle()
        break
#2

Öncelikle kodlarınızı paylaşırken aşağıdaki yöntemi kullanmalısınız.

Ne yapmak istediğiniz ile ilgili daha fazla bilgi verebilir misiniz?

#3

Merhaba öncelikle foruma alışmaya çalışıyorum yanlış paylaşımlarım dan dolayı kusura bakmayın. Amacım öz niteliklere sahip nesne oluşturmak ve bir listeye kaydedip , daha sonrasında listedeki elemanlarla işlemler yapmak olacak.

#4

Fonksiyonlara ve sınıflara biraz daha çalışsanız iyi olur. Öncelikle __str__ metodunun döndürdüğü değer karakter dizisi olmalıdır. print fonksiyonu bir değer döndürmez, haliyle None döner. Ayrıca __str__ metodu nesnenin karakter dizisine çevrilmesi gerektiğinde devreye girer. Nesnelerin personel özelliği yok ama __str__ metodunda çağırmışsınız. Ama sınıfta bir personel niteliği var.

Amacınız personelleri listelemek ise aşağıdaki gibi sınıf metodu oluşturmalısınız.

@classmethod
def personelleri_listele(cls):
    return cls.personel

Estağfirullah, bilmemek değil öğrenmemek ayıp :slight_smile: