Saltar al contenido

Importar y cambiar variables desde otro archivo

Contamos con la solución a esta cuestión, o por lo menos eso creemos. Si tienes dudas puedes escribirlo en el apartado de comentarios y sin dudarlo te ayudaremos

Solución:

Si la “variable” a la que te refieres es un valor mutable, lo que estás pidiendo simplemente funcionará.

archivoB:

my_variable = ["a list with a string in it"]

presentar un:

from fileB import my_variable  # import the value
my_variable.append("and another string")

Después fileA ha sido cargado fileB.my_variable tendrá dos valores en él.

Pero, eso solo funciona para valores mutables. Si la variable es inmutable, el código en fileA no puede cambiarlo en su lugar, por lo que tendrá problemas. No hay forma de solucionarlo directamente, pero hay muchas maneras de solucionar el problema y aún así obtener lo que desea.

Lo más fácil será simplemente usar import fileB en vez de from fileB import my_variable. Esto te deja entrar cualquier cosa fileBel espacio de nombres, simplemente usando un nombre como fileB.whatever. Puede volver a vincular las cosas en el espacio de nombres al contenido de su corazón:

archivoB:

my_variable = 1    # something immutable this time

presentar un:

import fileB
fileB.my_variable = 2   # change the value in fileB's namespace

Ese es probablemente el enfoque más simple.

Otra solución sería colocar la variable inmutable dentro de un contenedor mutable y luego modificar el contenedor, en lugar de la variable. Por ejemplo, si el string "a list with a string in it" era el valor que queríamos cambiar en el primer ejemplo, simplemente podíamos asignar un nuevo valor a my_variable[0] (en lugar de agregar).

Una forma común de hacer esto es poner valores en un diccionario, lista o incluso en una clase (o una instancia mutable de uno). Luego puede importar el objeto contenedor y mutarlo para cambiar el valor que le interesa.

Aquí puedes ver las comentarios y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *