试图使函数将定义的数字减去一个错误"missing 1 required positional argument"



我只是在学习python,经过一个月的没有练习,我无法弄清楚这一点。如何在不导致错误的情况下将"订单"递增 -1。类型错误:increment_one() 缺少 1 个必需的位置参数:"一"

class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
        self.number_serv=0
    def desc_restaurant(self):
        print("The restaurant name is:"+self.restaurant_name+" The 
        restaurant type is:"+self.cuisine_type)
    def open_restaurant(self):
        print(self.restaurant_name+"is now open")
    def number_served(self):
        """Print a statement showing the car's mileage."""
        print("Number of orders to serve: " + str(self.number_serv))
    def increment_serv(self,number):
        self.number_serv=number
       def increment_one(self,one):
        one=number-1
  mcdz = Restaurant('Mcdonald', 'Burger')
  mcdz.desc_restaurant()
  mcdz.open_restaurant()
  mcdz.increment_serv(34)
  mcdz.number_served()
  mcdz.increment_one()

您的代码定义increment_one如下:

def increment_one(self,one):
    one=number-1

并按如下方式调用它:

mcdz.increment_one()

错误消息是因为您自己的方法定义调用了调用代码未提供的参数。这样做:

def increment_one(self):
    self.number -= 1

(尽管我会称该方法decrement而不是increment)。

您的increment_one函数有两个参数,selfone 。你只是在传递self。更改此行:

mcdz.increment_one()

在括号内传递附加值,或更改此行:

def increment_one(self,one):

对此:

def increment_one(self):

如果您不想传递任何参数。

此外,在 increment_one 中,您没有定义 number 变量。您必须定义它才能使其正常工作。

相关内容

最新更新