Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Callable

A built-in type representing a method or a standalone function.

Description

Callable is a built-in Variant type that represents a function. It can either be a method within an Object instance, or a standalone function not related to any object, like a lambda function. Like all Variant types, it can be stored in variables and passed to other functions. It is most commonly used for signal callbacks.

Example:

func print_args(arg1, arg2, arg3 = ""):
    prints(arg1, arg2, arg3)

func test():
    var callable = Callable(self, "print_args")
    callable.call("hello", "world")  # Prints "hello world ".
    callable.call(Vector2.UP, 42, callable)  # Prints "(0, -1) 42 Node(node.gd)::print_args".
    callable.call("invalid")  # Invalid call, should have at least 2 arguments.

In GDScript, it's possible to create lambda functions within a method. Lambda functions are custom callables that are not associated with an Object instance. Optionally, lambda functions can also be named. The name will be displayed in the debugger, or when calling get_method.

func _init():
    var my_lambda = func (message):
        print(message)

    # Prints Hello everyone!
    my_lambda.call("Hello everyone!")

    # Prints "Attack!", when the button_pressed signal is emitted.
    button_pressed.connect(func(): print("Attack!"))

Note: Methods of native types such as Signal, Array, or Dictionary are not of type Callable in order to avoid unnecessary overhead. If you need to pass those methods as Callable, use a lambda function as a wrapper.

func _init():
    var my_dictionary = { "hello": "world" }

    # This will not work, `clear` is not a callable.
    create_tween().tween_callback(my_dictionary.clear)

    # This will work, as lambdas are custom callables.
    create_tween().tween_callback(func(): my_dictionary.clear())

Примітка

There are notable differences when using this API with C#. See Відмінності API C# в GDScript for more information.

Constructors

Callable

Callable ( )

Callable

Callable ( Callable from )

Callable

Callable ( Object object, StringName method )

Methods

Callable

bind ( ... ) vararg const

Callable

bindv ( Array arguments )

Variant