Nesne tabanlı programlama sonsuz döngüye giriyor

Merhaba,

Aşağıdaki kod neden sonsuz döngüye giriyor ?

Ek olarak, murat=Yazılımcı(“murat”,“can”,514,5000,[“python”,“java”,“C”]) kısmını 1 kez yazmak gerekiyor biliyorum. ancak alttakini silince murat tanımlanamıyor hatası alıyorum.

bir çok eğitim videosu izliyorum böyle küçük detaylar sadece bana mı denk geliyor.
sonradan aynı sınıf içerisine obje ekleyemiyormuyuz ?
gerçekten ne zormuş bu yazılım işi.

#nesne tabanlı programlama-sınıflar

class Yazılımcı():
    def __init__(self,isim,soyisim,numarası,maas,diller):
        self.isim = isim
        self.soyisim = soyisim
        self.numara = numarası
        self.maas = maas
        self.diller = diller
        
    def bilgilerigoster(self):
        print("""
        Yazılımcı objesinin özellikleri
        isim:{}
        soyisim: {}
        numara:{}
        maas:{}
        bildiği diller:{}
        """.format(self.isim,self.soyisim,self.numara,self.maas,self.diller))

        murat=Yazılımcı("murat","can",514,5000,["python","java","C"])

        gokce=Yazılımcı("gokce","can",263,maas=8000,diller="python")

        murat.bilgilerigoster()

    def dil_ekle(self,yeni_dil):
        print("dil ekleniyor.")
        self.diller.append(yeni_dil)
    def maas_yukselt(self,zam_miktarı):
        print("zam yapılıyor...")
        self.maas+=zam_miktarı
     

murat=Yazılımcı("murat","can",514,5000,["python","java","C"])

gokce=Yazılımcı("gokce","can",263,maas=8000,diller="python")

murat.bilgilerigoster()

gokce.bilgilerigoster()

murat.maas_yukselt(500)

murat.bilgilerigoster()

Merhaba,
Aşağıdaki satırları niye bilgilerigoster fonksiyonunda kullandınız acaba?


        murat=Yazılımcı("murat","can",514,5000,["python","java","C"])

        gokce=Yazılımcı("gokce","can",263,maas=8000,diller="python")

        murat.bilgilerigoster()

Arada zam öncesi görüntülemek istedim, öncesi sonrası amaçlı

Merhaba,

bilgilerigoster fonksiyonundaki şu satırı, kaldırdığınızda, istediğiniz çıktıyı elde edebiliyormusunuz?

murat.bilgilerigoster()

Merhaba.

Alttakini değil üsttekini silmeniz lazım.

Bu karşılaştığınız hata mantıksal bir hata ve herkes zaman zaman karşılaşıyor.

Ama bilgilerigoster metodunda, sınıfın yeni bir örneğini oluştumanız da nesne tabanlı programlama ile alakalı bazı konuları tam anlamadığınızın göstergesi.

Özyinelemeye giriyor:

Traceback (most recent call last):
  File "C:\Users\User\Desktop\x.py", line 35, in <module>
    murat.bilgilerigoster()
  File "C:\Users\User\Desktop\x.py", line 21, in bilgilerigoster
    self.bilgilerigoster()
  File "C:\Users\User\Desktop\x.py", line 21, in bilgilerigoster
    self.bilgilerigoster()
  File "C:\Users\User\Desktop\x.py", line 21, in bilgilerigoster
    self.bilgilerigoster()
  [Previous line repeated 1009 more times]
  File "C:\Users\User\Desktop\x.py", line 12, in bilgilerigoster
    print("""
RecursionError: maximum recursion depth exceeded while pickling an object

İlk önce murat.bilgilerigoster metodunu çağırıyorsunuz, daha sonra o metodun içinde tekrar, yeni oluşturulan bir örneğe ait olan, bilgilerigoster metodunu çağırıyorsunuz. Bu sürekli devam ediyor.


Kodun bu hali bu istediğinizi yapmıyor mu zaten?


Bunu şu kısımda yapabilirsiniz:

Hatta murat için halihazırda yapıyorsunuz.

1 Beğeni

Hocam

bilgilendirme için teşekkür ederim gerçekten.
çok iyi anladım.

Satır satır anlatmanız içinde ayrıca teşekkür ederim.

1 Beğeni