str формат зачем нужен?
В контексте вашего примера он в принципе не нужен.
Здесь вы не получите много чисел для сложения
numbers = int(input("Введите числа: "))
а только одно в лучшем случае.
Так что ваш дальнейший код не имеет смысла, в том числе и применение str тут
sum = [int(x) for x in str(numbers)]
Вот так как то можно сделать то что вы задумали (или не вы)...
print("Сумма введеных чисел равна: ", sum(map(int,input("Введите числа через пробел: ").split(' '))))
UPD
Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.8.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: class SumNumbers:
...: def __init__(self):
...: self.get_data_from_user()
...:
...: def get_data_from_user(self):
...: # Здесь мы запрашиваем данные от пользователя, конкретно получаем
...: # список "чисел" так как input возвращает данные с типом str
...: self.input_data_list_type_string = input("Введите числа через пробел: ").split(' ')
...:
...: def get(self):
...: # здесь волшебство при помощи встроеной функции map
...: input_data_list_type_integers = map(int, self.input_data_list_type_string)
...: # здесь используем встроеную функцию sum
...: return sum(input_data_list_type_integers)
...:
In [2]: def main():
...: sum_numbers = SumNumbers()
...: result = sum_numbers.get()
...: # используем f форматирование строк для вывода на печать результата
...: print(f"Сумма введеных чисел равна: {result}")
...:
In [3]: if __name__ == "__main__":
...: main()
...:
Введите числа через пробел: 2 2
Сумма введеных чисел равна: 4
In [4]: