有人可以向我解释如何使用我的代码解决下面的参数错误吗?
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() 的情况下理解解决方案代码?