Апну тему, чтобы не создавать свою.
В питоне с его утиной типизацией получается так, что на вход функции передается не то, что ожидалось, а ошибка вылазит совсем в другом месте. И чтобы понять, что произошло, надо обладать хорошо прокачаной телепатией.
Пример: подаем на вход строку вместо списка. И то, и то итерируемо, и ошибка вылетит, например, когда программа увидит, что в строке один символ, причем, сообщение не будет указывать на реальную причину ошибки (передана строка вместо списка строк). И в этом вся проблема.
Фактически ошибка произошла, когда функции передали неправильный список параметров, а исключение было брошено гораздо позже и совсем из другого места. Т.е. сообщение не соответствует ошибке, и искать ее придется гораздо дольше.
Было бы гораздо лучше, если бы питон поддерживал статическую типизацию, но гвидо запретил. Вместо этого в тройке хинты, ни на что не влияющие. Даже более-менее стандартного декоратора для этого нет. |