Ошибка типа: __init __ () отсутствует 3 обязательных позиционных аргумента в классе - PullRequest
0 голосов
/ 07 марта 2020

Я практикуюсь python, и я получаю эту ошибку, и мне не хватает 3 позиционных требований, вот код:

shape = input('Enter shape to calculate, must be "SQUARE", "TRIANGLE", "RECTANGLE", "TRAPEZOID":')


class Calc():
#    if shape == 'TRAPEZOID': base2 = int(input('Enter second base size:'))

    def __init__(self):
        self.base = int(input('Enter base:'))
        self.height = int(input('Enter height:')


class Trapezoid(Calc):

     def __init__(self, height, base, base2):
         super().__init__(height, base)
         self.base2 = int(input("Enter second base for Trapezoid:"))

     def getArea(self):
         return (self.base + self.base2) * self.height / 2


if shape == 'SQUARE':
    Square = Square()
    print ("Square Area is" , Square.getArea())
if shape == 'TRIANGLE':
    Triangle = Triangle()
    print ("Triangle Area is" , Triangle.getArea())
if shape == 'RECTANGLE':
    Rectangle = Rectangle()
    print ("Rectangle Area is", Rectangle.getArea())
if shape == 'TRAPEZOID':
    Trapezoid = Trapezoid()
    print ("Trapezoid Area is", Trapezoid.getArea())

Вот ошибка, которую я получаю

Traceback (most recent call last):
  File "C:/Users/ChesTheGoat/work/code-check/area_calc.py", line 49, in <module>
    Trapezoid = Trapezoid()
TypeError: __init__() missing 3 required positional arguments: 'height', 'base', and 'base2'

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

1 Ответ

1 голос
/ 07 марта 2020

Поскольку ваши методы __init__ запрашивают параметры фигур, вы не должны перечислять их как параметры метода и не должны передавать их в качестве аргументов методу super (он не имеет их в качестве параметров).

class Trapezoid(Calc):

     def __init__(self):
         super().__init__()
         self.base2 = int(input("Enter second base for Trapezoid:"))

     def getArea(self):
         return (self.base + self.base2) * self.height / 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...