Для чего дана возможность делать так a: type = ...?
Недавно в питоне увидел, что люди делаю так a: str = None и думал это своего рода присвоение типа переменной, но не тут то было, если написать a: int = "abcd", то a будет типа str.
Таким образом программисты обычно оставляют некую подсказку с каким типом данный работает функция или метод и если вы передадите str вместо ожидаемого типа int, то программа упадет выдав исключение.
old_stalin, Прочитайте, пожалуйста, внимательно еще раз мой изначальный ответ Вам и быть может тогда поймете тот факт, что подобного рода запись
num_a: int, num_b: int
как бы подсказывает Вам, что функция заточена на работу с числами. Поймите одну простую вещь, что это ПОДСКАЗКА ДЛЯ ВАС и других программистов и в целом Вы можете записать туда, что угодно!