Если вы имеете в виду во время определенного вызова функции, сама функция может получить типы своих аргументов, вызывая type
для каждого из них (и, несомненно, будет знать тип, который она возвращает).
Если вы имеете в виду извне функции, нет: функцию можно вызывать с аргументами любых типов - некоторые такие вызовы будут вызывать ошибки, но априори невозможно определить, какими они будут.
Параметры могут быть произвольно оформлены в Python 3, и одно из возможных применений такого оформления состоит в том, чтобы выразить что-то о типах параметров (и / или других ограничениях на них), но язык и стандартная библиотека не дают указаний о том, как такие украшение может быть использовано. С тем же успехом можно принять стандарт, в соответствии с которым такие ограничения выражаются структурированным образом в строке документации функции, что дает преимущество в применимости к любой версии Python.