Исправление калькулятора на питоне

import operator


class Stack:
    def __init__(self):
        self.stack = []

    def push(self, num):
        return self.stack.append(num)

    def pop(self):
        try:  
            return self.stack.pop()
        except IndexError:
            raise IndexError('Empty') 


    OPERATORS = {
        '+' : operator.add,
        '-' : operator.sub,
        '*' : operator.mul,
        '/' : operator.floordiv
    } 


class Calculator:
    def __init__(self, array, operators=OPERATORS):
        self.array = array
        self.operators = operators

    def calculation(self, stack=None):
        stack = Stack() if stack is None else stack
        for item in self.array:
            if item in self.operators:
                second_num = stack.pop() 
                first_num = stack.pop() 
                stack.push(self.operators[item](first_num, second_num))
            else:
                try:
                    stack.push(int(item))
                except ValueError as error:
                    raise ValueError(f'{error} - Item is not num!')
        return stack.pop()


if __name__ == '__main__': 
    array = input().split()            
    stack = Stack() 
    print(Calculator(array, OPERATORS).calculation(stack))

Нужно исправить def calculation(self, stack=None): "Не стоит использовать дефолтное значение изменяемого типа для аргумента функции https://docs.quantifiedcode.com/python-anti-patterns/correctness/mutable_default_value_as_argument.html Отсутствие это None" Но посмотрев данную ссылку, я не вижу отличий от того, что написано у меня. Помогите пожалуйста исправить

И еще после всего кода написано "Не хватает id успешно посылки" Не понимаю, что это и как это сделать.


Ответы (0 шт):