The error here is on positional argument error where the code can not execute because of the position argument error on this line of code 'Customer_Cars_1 = Customer1.requestCar()'. I got an error of "TypeError: rentCarOnHourlyBasis() missing 1 required positional argument: 'n' " which I am not sure if It has been resolved. I need an explicit explanation on how to resolve all the errors listed above
THE ERROR:
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
MY CODE
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)
In the class CarRental
the function rentalPackages(self)
takes only one argument that is self
where, self
represents the instance of object.
If you want to pass another argument in that function you should add one more argument while defining the function. Like this, rentalPackages(self, AnotherArgumentVariableName)
You should add another positional argument as the first argument that is passed in a method is an instance of the object.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.