Kivy - привязать текст метки к переменной (только Python)

Я уже давно пытаюсь заставить свои ярлыки автоматически обновляться, и я прочитал более десятка вопросов StackOverflow, но безрезультатно.

У меня есть глобальный объект, который содержит целочисленное значение, которое я хочу отображать с меткой внутри одного из моих классов виджетов.

Класс виджета выглядит так:

class Battle(Widget):

    def __init__(self, **kwargs):
        super(Battle, self).__init__(**kwargs)

        #Enemy Stats
        self.enemyBar = BoxLayout(orientation="horizontal", size=(Window.width, Window.height/8), center_y = Window.height - self.height/2)
        self.enemyBar.add_widget(Label(text=enemy.name))

        #Enemy Health Label
        health_label = Label(text=str(enemy.health))
        self.enemyBar.add_widget(health_label)
        self.add_widget(self.enemyBar)


    def update_health(instance, value):
        health_label.text = str(enemy.health) #<-- Error happens here

    enemy.bind(health=update_health)

Когда значениеenemy.health в программе, я хочу, чтобы мой лейбл тоже менялся. Я не хочу использовать какой-либо язык kivy, потому что я предпочитаю иметь только один основной файл python.

Вражеский объект создается с помощью класса сущностей. Вот код сущности:

class entity(Widget):
    #entity creation
    health = NumericProperty() 

    def __init__(self, health):
        self.health = health

Когда я запускаю код, я нажимаю кнопку, которая вызывает функцию, которая изменяет здоровье врага, и затем я получаю ошибку:

глобальное имя 'health_label' не определено

Каким-то образом, когда вызывается функция update_health, программа не видит переменную health_label, созданную в init.

Ответы на вопрос(1)

Ваш ответ на вопрос