Como puedo modificar una variable local desde una clase en python
Aclarar que es mala práctica usar variables globales, sin embargo, la única manera de de modificar una variable definida en un bloque externo al que se refiere, es de esta manera.
En Python todas las variables por defecto tiene un ámbito local, para extender su ámbito a otros bloques de código se usa la sentencia global
The global statement is a declaration which holds for the entire current code block.
Con bloques de código, nos referimos a funciones.
variable = "sin "
class Clase:
def metodo(self):
global variable
variable += "modificar"
print(variable)
objeto = Clase()
objeto.metodo()
Extender a ámbito global por cada método de la clase no es practico, puedes definir a la variable
externa como atributo de la clase por medio de __init__()
.
variable = "sin "
class Clase:
def __init__(self):
global variable
self.variable = variable
def metodo(self):
self.variable += "modificar"
print(self.variable)
objeto = Clase()
objeto.metodo()
Esto con el fin de pasar variable a otro modulo.
Dicho esto, te aconsejo encontrar otra manera.
Puedes importar las variables definidas en un archivo .py
al importar dicho archivo.
from modulo import variable #variable
from modulo import * #variable
import modulo #modulo.variable
Como comentario la manera de acceder en el archivo principal
Espero haberte ayudado.