Термин «сигнатура функции» означает элементы, которые позволяют языку идентифицировать «упомянутую функцию».
В строго типизированных языках (таких как Java, C, C++, C#, …) сигнатура функции состоит из ее имени и типа каждого из ее параметров.
Это означает, что вы можете найти несколько функций с одинаковым именем, но с разными параметрами.
Когда функция вызывается, компилятор будет искать функцию, которая применяется к этой сигнатуре.
В этих языках со строковой типизацией возможен параметрический полиморфизм.
Он определяет несколько функций с одним и тем же именем, но с разными параметрами.
Параметрический полиморфизм позволяет автоматически выбирать правильный метод в зависимости от типа данных, переданных в качестве параметра.
Следовательно, именно сигнатура метода будет определять, какой метод будет вызываться.
В слабо типизированных языках (таких как Python, Ruby, Perl, PHP, …) вы не указываете типы аргументов функции. В этом случае сигнатура функции — это просто ее имя. Это означает, что вы не можете определить две функции с одним и тем же именем (в этом случае интерпретатор языка обычно выдает фатальную ошибку или старая функция будет перезаписана новой).
В языках со слабой/динамической типизацией параметрический полиморфизм обычно невозможен.