В Godot 4.0 был добавлен класс под названием Callable.
Callable может быть так ссылкой на функцию, так и отдельной функцией. Его можно хранить в переменной, а также передавать в качестве аргумента.
Описание из Godot docs:
Callable — это встроенный тип Variant , представляющий функцию. Это может быть либо метод внутри экземпляра Object , либо отдельная функция, не связанная ни с одним объектом, например, лямбда-функция. Как и все типы Variant , он может храниться в переменных и передаваться другим функциям. Чаще всего он используется для обратных вызовов сигналов.
Получение
Callable функции можно получить, имея объект, в котором имеется данная функция и имя самой функции. Для примера создадим функцию function(), и переменную function_callable, в которой будет храниться Callable созданной ранее функции.
Есть и другой способ получения Сallable. Для этого достаточно написать имя функции без скобочек и аргументов - это и будет Callable.
Callable в сигналах
Метод connect в сигналах как раз требует Callable для подключения сигнала к функции. Для примера создадим сигнал callable_test и в _ready() подключим его к нашей функции, а затем излучим сигнал.
В подключаемой функции должно быть то количество аргументов, что и у сигнала. Добавим к сигналу и к функции по одному аргументу и в _ready() излучим сигнал с аргументом.
Вызов Callable
Чтобы вызвать функцию через Callable, используйте встроенный в Callable метод call().
Если в функции есть аргументы, то вписывайте их в call().
В Callable также есть метод callv(), который отличается от call() лишь тем, что он использует массив для записи аргументов.
Привязка аргументов к Callable
Вы можете заранее задать аргументы у Callable, для этого используйте метод bind(). Метод bind() возвращает копию Callable с привязанными аргументами. Задав аргументы заранее, можно вызывать копию этого Callable не вписывая аргументы.
Также есть метод bindv(), он отличается от bind() также как и callv() от call(), то есть использует массив для записи аргументов.