[英]python “class” word promblem
問題是:
編寫一個名為Car的類,它具有以下數據屬性:
__year_model
(適用於汽車的年份型號)
__make
(用於汽車的汽車制造)
__speed
(對於汽車的當前速度)
Car類應該有一個__init__
方法,它接受汽車的年份模型並作為參數。 它還應該為__speed
數據屬性賦值0。
該類還應具有以下方法:
•加速加速方法應在每次調用時將速度數據屬性加5。
•制動每次調用時,制動方法應從速度數據屬性中減去5。
•get_speed get_speed方法應返回當前速度
接下來,設計一個創建汽車對象的程序,然后調用加速方法五次。 每次調用加速方法后,獲取汽車的當前速度並顯示它。 然后調用制動方法五次。 每次調用制動方法后,獲取當前車速並顯示。
我收到錯誤TypeError: __init__() missing 3 required positional arguments: 'year', 'make', and 'speed'
我的代碼:
#create class called car
class Car:
def __init__(self,year,make,speed):
self.__year_model=year
self.__make=make
self.__speed=0
#set the arguments for speed,year, and make
def set_year_model(self,year):
self.__year_model=year
def set_make(self,make):
self.__make=make
def set_speed(self,speed):
self.__speed=0
#the returns for speed, year, and make
def get_year_model(self):
return self.__year_model
def get_make(self):
return self.__make
def get_speed(self):
return self.__speed
#methods
def accelerate(self):
self.speed +=5
def brake(self):
self.speed-=5
def get_speed(self):
return self.speed
#actuall program
#create car object
def main():
my_car=Car()
year=print(input('car year: '))
make=print(input('car make: '))
speed= print('Current speed is 0')
#accelerate 5 times
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
#brake five times
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
main()
Car
類的__init__
接受三個你沒有傳遞的參數。
year=input('car year: '))
make=input('car make: '))
speed=0
print'Current speed is', speed
#actuall program
#create car object
def main():
my_car=Car(year, make, speed)
在input
之前不需要那些print
語句。 我不確定你要跟它做什么。 speed= print('Current speed is 0')
也不正確。
此函數始終將速度設置回零,如果這是您想要的,則無需傳遞參數speed
。 與init相同的是,如果您還沒有使用它,則無需傳遞參數。
def set_speed(self,speed):
self.__speed=0
錯誤消息告訴您確切的錯誤。 您已將Car
定義為需要三個參數:
def __init__(self, year, make, speed):
但是當你創建一個時,你不會傳遞任何一個:
my_car = Car()
看到? 括號中沒有任何內容。 顯然這需要:
my_car = Car(year, make, speed)
當然,你不能這樣做,因為你還沒有要求這些項目。 因此, 在從用戶獲取該信息后創建my_car
。
class Car(object):#made class called car def init (self,model,make):self .__ model = model self .__ make = make self .__ speed = 0 def accelerated(self):self .__ speed + = 5 #increase 5速def剎車(自我):自我.__速度 - = 5#降低5速
def get_speed(self):
return self.__speed #return speed
wr_handle = open("output_04.txt", "w+")
carObject = Car( 1984,"Chevron")
wr_handle.write("Car is accelerating: \n")
print("Car is accelerating:") #accelerate 5 times
for p in range(0, 5):
carObject.accelerate()
my_car_speed = carObject.get_speed()
wr_handle.write("The current speed is: %d \n"% my_car_speed)
print("The current speed is: %d "% my_car_speed)
wr_handle.write("Car is braking: \n")
print("Car is braking: ") #brake 5 times
for p in range(0,5):
carObject.brake()
my_car_speed = carObject.get_speed()
wr_handle.write("The current speed is: %d \n"% my_car_speed)
print("The current speed is: %d "% my_car_speed)
wr_handle.write("Bye! \n")
print("Bye! ")
wr_handle.close()
class Car(object):#made class called car def init (self,model,make):self .__ model = model self .__ make = make self .__ speed = 0 def accelerated(self):self .__ speed + = 5 #increase 5速
def brake(self):
self.__speed -= 5 #decrease 5 speed
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.