IIC2233 / Syllabus-2023-1

75 stars 44 forks source link

No puedo acceder a una variable definida dentro de una función #22

Open luc0i opened 1 year ago

luc0i commented 1 year ago

Tengo una duda en el ejercicio propuesto 2.1 de la semana 1: ¡A jugar Pro-Gra-Oh!

En la función read_file() abrí el archivo csv de las cartas y creé una lista que contiene _namedtuples para cada carta (lo cual no sé si está bien pero esa no es mi duda). Mi problema es que como creé esa lista dentro de la función, no puedo ocupar la lista de las cartas para las siguientes funciones (repartir_cartas(), atacar(), etc). En resumen, python no reconoce la variable en que tengo definida la lista, porque la definí dentro de una función.

jtagle2 commented 1 year ago

Hola!

No puedo ver tu código, pero supongo que tienes algo de la forma:

def funcion()
    lista = []
    # Hacer cosas con la lista

# Hacer algo con esa variable
for elemento in lista:
    #blabla

El problema que tiene eso, es que las variables son definidas para un alcance (scope) específico. Esto quiere decir, que si defines una variable dentro de una función por ejemplo, solo estará definida dentro de esa función específica, y una vez que. termine el llamado a esa función dichas variables mueres. Si quieres acceder a lo que procesaste dentro de una función, entonces debes retornar ese valor y usarlo afuera. Ejemplo:

def funcion()
    lista = []
    # Hacer cosas con la lista
    return lista

variable = funcion()
for elemento in variable:
    #blabla

PD: Vi que marcaste la casilla que dice "Utilizaré un título descriptivo y llenaré correctamente esta plantilla." y no le pusiste un título descriptivo. Creo que marcaste las casillas sin leer lo que pedían 😔

luc0i commented 1 year ago

Gracias!!

PD: juro que leí las casillas y que mi error se basa en falta de comprensión lectora.