有人可以向我解释如何使用我的代码解决下面的参数错误吗?

Posted

技术标签:

【中文标题】有人可以向我解释如何使用我的代码解决下面的参数错误吗?【英文标题】:Can someone explain to me how to resolve the argument error below with the use of my code? 【发布时间】:2022-01-17 03:59:47 【问题描述】:

这里的错误是位置参数错误,由于这行代码“Customer_Cars_1 = Customer1.requestCar()”上的位置参数错误,代码无法执行。我收到“TypeError:rentCarOnHourlyBasis() missing 1 required positional argument:'n'”的错误,我不确定它是否已经解决。我需要一个关于如何解决上面列出的所有错误的明确解释

错误:

     Traceback (most recent call last):
      File "c:/Users/CRIME ALERT 3/Documents/project for python/car_rent2.py", line 79, in 
<module>
    CarRtl.rentalPackages(Customer_Cars_1)
TypeError: rentalPackages() takes 1 positional argument but 2 were given

我的代码

class CarRental:   
    def __init__(self, stock):
    
        self.stock = stock

    def displayStock(self):
    
        print(f"Welcome To Ayodeji Autos.... \n \n \nWe have currently self.stock cars 
              available to rent\n \n \n")
        return self.stock
 
    def rentalPackages(self):
    
        numCars = CarRental(int(n))
        numCars.rentalPackages
    
        option = int(input('Ayodeji Autos Rental Packages \nOptions: \n 1 - Hourly 
        Basis\n**************************************\nHow long do you want to rent a car: '))
    
        try:
            option = int(option)
        except ValueError:
            print("That's not a positive integer!")
            return 1
    
        if option == 1:
            CarRental.rentCarOnHourlyBasis(numCars) 
    
        else:
            return CarRental.displayStock()

      
def rentCarOnHourlyBasis(self, n):
    
    if n <= 0:
        print('Number of cars should be positive!')
        
    elif n > self.stock:
        print(f'Sorry! We have currently self.stock bikes available to rent.')
        return None
    
    else:
        now = datetime.datetime.now()
        print(f'You have rented a n car(s) on hourly basis today at now.hour hours.')
        print("You will be charged $5 for each hour per car.")
        print("We hope that you enjoy our service.")
        
        self.stock -= n
        return now
    

class Customer:

    def requestCar(self):
                  
        cars = input("How many cars would you like to rent?")
    
        try:
            cars = int(cars)
        except ValueError:
            print("That's not a positive integer!")
            return 1
        if cars < 1:
            print(f"cars is an Invalid input. Number of cars should be greater than zero!")
            return 1
        else:
            self.cars = cars
        return self.cars

if __name__ == '__main__':
    stock = 10
    CarRtl = CarRental(stock)
    CarRtl.displayStock()     
    Customer1 = Customer()
    Customer_Cars_1 = Customer1.requestCar()
    CarRtl.rentalPackages(Customer_Cars_1)

【问题讨论】:

rentalPackages 只接受一个参数,CarRental 实例 self。那么你希望CarRtl.rentalPackages(Customer_Cars_1) 做什么 n 应该在CarRental(int(n)) 中是什么? rentalPackages() 是否应该有 n 参数? 【参考方案1】:

CarRtl.rentalPackages(Customer_Cars_1) 在这行代码中,您将 2 个参数传递给 rentalPackages。第一个是对象的实例(每当我们在该类的对象上调用任何类的方法时,该对象的实例都会自动作为该方法中的参数传递。在这种情况下,对象是CarRtl) ,第二个参数是Customer_Cars_1

但是, 在class CarRental 中,函数rentalPackages(self) 只接受一个参数self,其中self 表示对象的实例。

如果您想在该函数中传递另一个参数,您应该在定义函数时再添加一个参数。像这样,rentalPackages(self, AnotherArgumentVariableName)

【讨论】:

【参考方案2】:

您应该添加另一个位置参数,因为在方法中传递的第一个参数是对象的实例。

【讨论】:

以上是关于有人可以向我解释如何使用我的代码解决下面的参数错误吗?的主要内容,如果未能解决你的问题,请参考以下文章

有人可以向我解释为什么返回语句应包含在此代码中?

关于此代码的引用计数的问题

有人可以向我解释为啥我的 django 管理主题是黑暗的吗?

SQL:如何在不使用 rank() 的情况下理解解决方案代码?

有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]

交叉和计算,有人可以解释一下代码吗?