這里的錯誤是位置引數錯誤,因為這行代碼“Customer_Cars_1 = Customer1.requestCar()”上的位置引數錯誤,代碼無法執行。我收到了“TypeError:rentCarOnHourlyBasis() 缺少 1 個必需的位置引數:'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)
uj5u.com熱心網友回復:
您應該添加另一個位置引數,因為方法中傳遞的第一個引數是物件的實體。
uj5u.com熱心網友回復:
CarRtl.rentalPackages(Customer_Cars_1)在這行代碼中,您將 2 個引數傳遞給rentalPackages. 第一個是物件的實體(每當我們對該類的物件呼叫任何類的方法時,該物件的實體會自動作為該方法的引數傳遞。在這種情況下,物件是CarRtl),并且第二個論點是Customer_Cars_1。
但是,在class CarRental函式rentalPackages(self)中只接受一個引數,即selfwhere,self代表物件的實體。
如果要在該函式中傳遞另一個引數,則應在定義函式時再添加一個引數。像這樣,rentalPackages(self, AnotherArgumentVariableName)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383768.html
上一篇:c語言中的陣列可視化函式
下一篇:數列的R函式
