【发布时间】: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参数?
标签: python function class methods arguments