Signals

A signal is Godot's way to implement the observer pattern (on gameprogrammingpatterns.com).

Refs: Signal basics Signal Class

class_name player extends Node

# here are two signals
signal health_changed
signal health_depleted

var health = 20

func take_damage(amount):
    var old_health = health
    health -= amount

    # We emit the health_changed signal every time the
    # character takes damage.
    health_changed.emit(old_health, health)

    if health<1:
        health_depleted.emit()

Nodes can subscribe to signals and are notified when the signal is emitted:

# game.gd

func _ready():
    var character_node = get_node('player')
    character_node.health_depleted.connect(_on_character_health_depleted)

func _on_character_health_depleted():
    get_tree().reload_current_scene()

You can emit as many arguments as you want along with a signal.