哦,救命啊!缺少要求:s

2024-10-02 06:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好这是我的第一篇文章。我目前正在努力学习python-OOP。我在这里做的是用python中的OOP构建一个虚构的打印机器。但每当我启动机器,或试图插入墨水等

我得到这个错误:

TypeError murekkepDoldur() missing 1 required positional argument: 'self'

这是我的密码:

class Makine : #This is where i def my printing machine class#

    def __init__(self):
        self.murekkep=100 #this means ink#
        self.şarj=100  #this means charge
        self.devir=0    #this means how many turns did machine worked#
        self.mevcutDergi=[]  #this means list of printed magazines#

    def calis(self): #this means the work function for machine#
        if self.murekkep>=10 and self.şarj>=5:
            print("Makine çalışıyor.")
            self.murekkep-=10
            self.şarj-=5
            self.devir+=1
        elif self.murekkep<10 :
            print("Yetersiz mürekkep!")
        elif self.şarj<5 :
            print("Yetersiz şarj!")
        elif self.devir==10 :
            a=input()
            print("Yeni dergi çıktı!\nDerginin adı : "+ a)
            mevcutDergi.append(a)
            self.devir = 0

    def murekkepDoldur(self):  #this means add ink function#
        if self.murekkep<=80:
            self.murekkep+=20
            print("Mürekkep dolduruldu!\nYeni mürekkep seviyesi yüzde 
",self.murekkep)

    def şarjDoldur(self): #this means charge battery function#
        if self.şarj<=95:
            self.şarj+=5
            print("Şarj dolduruldu!\nYeni şarj seviyesi yüzde 
",self.şarj)

    def mevcutDurum(self):  #this means show status function#
        print("Makinenin murekkebi % ",self.murekkep, 
              "\nMakinenin şarjı % ", self.şarj,
              "\nMakinenin devir sayısı : " ,self.devir,
              "\nMevcut dergiler : ",self.mevcutDergi)
makine1=Makine                    
while True :
    print("-"*30)
    print("Matbaa Makinesi v0.1\n",
          "Makineyi çalıştırmak için->1\n",
          "Murekkep doldurmak için->2\n",
          "Şarj doldurmak için->3\n",
          "Mevcut durumu öğrenmek için->4")
    print("-"*30)
    komut = int(input())
    if komut==1:
        makine1.calis()
    elif komut==2:
        makine1.murekkepDoldur()
    elif komut==3:
        makine1.şarjDoldur()
    elif komut==4:
        makine1.mevcutDurum()
    else :
        print("Hatalı komut girdiniz!")

谢谢你的帮助!你知道吗


Tags: inselfifdeffunctionthismeansprint
1条回答
网友
1楼 · 发布于 2024-10-02 06:25:30

在调用方法之前,必须创建类Makine的实例。你知道吗

问题在于:

makine1=Makine                    
while True:

应该是:

makine1=Makine()
while True:

那就很高兴工作了。你知道吗

相关问题 更多 >

    热门问题