Nesne yönelimli Proje hatası

Arkadaşlar, Bu kodda şöyle bir hata veriyor sebebi nedir?

 banka = Banka() # hata  veriyor....
TypeError: __init__() missing 4 required positional arguments: 'bakiye', 'miktar', 'kart_no', and 'sifre'

Kod da şu:

import time
import datetime


class Banka:
    def __init__(self,bakiye,miktar,kart_no,sifre) -> None:
        self.bakiye = bakiye
        self.miktar = miktar
        self.kart_no = kart_no
        self.sifre = sifre
        

    def HesapAc(self,no,koy_şifre):
        self.kart_no.append(no)
        self.sifre.append(koy_şifre)
        self.bakiye.append(0)
        self.miktar.append(0)
        print("Hesap açıldı")



    def MevcutHesaplarıGöster(self):
        print("Mevcut hesaplar: " + str(self.kart_no), end="")
        print("Mevcut hesaplar: " + str(self.sifre), end="")
        print("Mevcut hesaplar: " + str(self.bakiye), end="")

    def şifre_koy(self,koy_şifre):
        self.sifre.append(koy_şifre)
        print("Şifre koyuldu")
        

    def şifre_yenile(self,yenile_şifre):
        self.sifre = yenile_şifre
        print("Şifre yenilendi")
        time.sleep(2)
        print("Yenilenen şifre: " + str(self.sifre))
        

    def şifre_kontrol(self):
        print("Şifreniz:" + self.sifre)

    def ParaYatır(self):
        self.miktar = int(self.miktar)
        self.bakiye += self.miktar
        print("Yeni bakiye: " + str(self.bakiye))

    def ParaCek(self):
        self.miktar = int(self.miktar)
        self.bakiye -= self.miktar
        print("Yeni bakiye: " + str(self.bakiye))

    def Bakiye_sorgula(self):
        print("Bakiye: " + str(self.bakiye))


    def KrediAl(self): 
        self.miktar = int(self.miktar)
        self.bakiye += self.miktar

    def KrediÖde(self,miktar):
        krediAlmaTarihi = datetime.datetime(2021, 5, 17)
        bugün = datetime.datetime.now()
        if bugün - krediAlmaTarihi >= datetime.timedelta(years=1):
            self.bakiye -= miktar * 1.1
            print("Kredi ödendi")

    def fatura_öde(self,elektrik,su):
        self.bakiye -= elektrik
        self.bakiye -= su
        print("Fatura ödendi")
        

    def HavaleYap(self):
        self.miktar = int(self.miktar)
        self.bakiye -= self.miktar
        print("Havale yapıldı")

banka = Banka() # hata  veriyor....

while True:
    print("""
    1. Hesap aç
    2. Mevcut hesapları göster
    3. Şifre koy
    4. Şifre yenile
    5. Şifre kontrol
    6. Para yatır
    7. Para çek
    8. Bakiye sorgula
    9. Kredi al
    10. Kredi öde
    11. Fatura öde
    12. Havale yap
    13. Çıkış
    """)
    işlem = input("İşlem seçiniz: ")
    if işlem == "1":
        no = input("Hesap numarası: ")
        koy_şifre = input("Şifre: ")
        banka.HesapAc(no,koy_şifre)
    elif işlem == "2":
        banka.MevcutHesaplarıGöster()
    elif işlem == "3":
        koy_şifre = input("Şifre: ")
        banka.şifre_koy(koy_şifre)
    elif işlem == "4":
        yenile_şifre = input("Yeni şifre: ")
        banka.şifre_yenile(yenile_şifre)
    elif işlem == "5":
        banka.şifre_kontrol()
    elif işlem == "6":
        miktar = input("Miktar: ")
        banka.ParaYatır(miktar)
    elif işlem == "7":
        miktar = input("Miktar: ")
        banka.ParaCek(miktar)
    elif işlem == "8":
        banka.Bakiye_sorgula()
    elif işlem == "9":
        miktar = input("Miktar: ")
        banka.KrediAl(miktar)
    elif işlem == "10":
        miktar = input("Miktar: ")
        banka.KrediÖde(miktar)
    elif işlem == "11":
        elektrik = input("Elektirik faturası: ")
        su = input("Su faturası: ")
        banka.fatura_öde(elektrik,su)
    elif işlem == "12":
        miktar = input("Miktar: ")
        banka.HavaleYap(miktar)
    elif işlem == "13":
        print("Çıkış yapılıyor...")
        break

Banka isimli class 4 eleman alıyor

Burada sen parantezlerin içini boş bırakmışsın, ondan ola bilir

1 Beğeni

bakiye, miktar, kart_no ve sifre bilgilerini girmeniz lazım.

Banka(150, 100, "1111 2222 3333 4444", "sifre")

gibi.

1 Beğeni

init() methoduna yazdığın her şeyi, mevcut classtan obje oluştururken kullanmak zorundasın. eğer Banka classını hiçbir şey vermeden çağırmak istiyorsan ama yine de gerekirse şifre bakiye vs tanımlamak istiyorsan python getter, setter googlelayarak çözebilirsin sorununu.

1 Beğeni

çok teşekkür ederim sorunum çözüldü