2016-12-14 10 views
1

Я пытаюсь написать код для класса, и у меня огромные проблемы с классами. Проблема заключается в том, чтобы написать сценарий с одним классом, Car, установить метод speed на «0» и отобразить скорость по серии из десяти итераций (вызывая acceleration и brake пять раз каждый). Ошибка я получаю:__init __() missing 3 необходимых позиционных аргумента

Traceback (most recent call last): File "C:/Users/Brown Bear/Documents/Wake Tech/CIS115/Python Documents/Lab14P1.py", line 36, in <module> main() File "C:/Users/Brown Bear/Documents/Wake Tech/CIS115/Python Documents/Lab14P1.py", line 27, in main my_speed = Car() TypeError: __init__() missing 3 required positional arguments: 'make', 'model', and 'speed'

И это пример того, что вывод должен быть:

Enter model of your car: Prius 
Enter make of your car: Toyota 
Current speed: 5 
Current speed: 10 
Current speed: 15 
Current speed: 20 
Current speed: 25 
Current speed: 20 
Current speed: 15 
Current speed: 10 
Current speed: 5 
Current speed: 0 

И это мой код:

class Car: 
    def __init__(self, make, model, speed): 
     self.make = make 
     self.model = model 
     self.speed = speed 

    def accelerate(self): 
     self.speed += 5 

    def brake(self): 
     self.speed -= 5 

    def get_make(self): 
     return self.make 

    def get_model(self): 
     return self.model 

    def get_speed(self): 
     return self.speed 


def main(): 
    manuf = input('Enter the car make: ') 
    mod = input('Enter the car model: ') 

    my_speed = Car() 

    for num in range(5): 
     my_speed.accelerate() 
     print('Current speed: ', my_speed.get_speed()) 
    for num in range(5): 
     my_speed.brake() 
     print('Current speed: ', my_speed.get_speed()) 

main() 

Я потратил нелепое количество времени на эту конкретную проблему и попытался по-разному, я также исследовал аналогичные вопросы, ранее заданные здесь, но все они слишком сложны, и мне просто нужно простое решение , Любая помощь приветствуется. Благодаря!

+0

Вам необходимо ввести аргументы при инициализации класса – masteryoom

ответ

3

При создании экземпляра класса вы не проходя никаких аргументов:

my_speed = Car() 

Но ваше определение говорит, что есть 3 необходимые аргументы:

def __init__(self, make, model, speed): 

Так что вам нужно создать экземпляр автомобиля и пропустите 3 аргумента: make, model и speed.

my_speed = Car(manuf, mod, some_Speed_val) 
+0

я пинать себя за простоту, что исправить .. Вы ангел в моей книге. Спасибо, миллион, Эндрю! – Noct

+0

Добро пожаловать. Случается со всеми в какой-то момент. –

 Смежные вопросы

  • Нет связанных вопросов^_^