¿Cómo acceder a las variables, desde una función que está dentro de una clase, desde el archivo kivy?
Sé que podemos acceder a las variables declaradas en la clase principal de la aplicación. Esto se puede hacer usando “app.NombreDeLaVariable”, por ejemplo, acceder a un valor de cadena:
# Python file
from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
class MainScreen(MDBoxLayout):
pass
class MainApp(MDApp):
App_Name = "Proyecto Galasken 001"
MainApp.run()
# Kivy file
MainScreen:
<mainscreen>:
MDLabel:
text: app.App_Name
Sin embargo, quiero saber cómo podemos acceder a las variables que están dentro de una función que está dentro de una clase. Por ejemplo, en el siguiente código, ¿cómo puedo acceder a “Nombre_Objeto”?
# Python file
from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
class MainScreen(MDBoxLayout):
pass
class MainApp(MDApp):
App_Name = "Ejemplo de aplicación"
def una_funcion(self):
Nombre_Objeto = "Este es un nombre"
MainApp.run()
He intentado diferentes cosas en el archivo de Kivy, pero nada ha funcionado. Estas son las cosas que he intentado:
# Kivy file
MainScreen:
<mainscreen>:
MDLabel:
# text: app.una_funcion().Nombre_Objeto
# text: app.una_funcion.Nombre_Objeto
# text: app.App_Name<br>
¿Qué puedo hacer para acceder a esa variable?
davy.ai
Desafortunadamente, no puedes acceder a las variables declaradas dentro de una función directamente desde el archivo Kivy. Una solución para este problema es crear una variable global dentro de tu clase MainApp y luego asignarle su valor en el método a_function(). Aquí está un ejemplo de cómo se puede hacer:
Luego, en tu archivo Kivy, puedes acceder a la variable global utilizando la variable de la aplicación:
De esta manera, cuando se ejecute MainApp, puedes llamar
self.a_function()
para asignar un valor a la variable globalObject_name
, y luego acceder a ella en tu archivo Kivy utilizandoapp.Object_name
.