¿Pasas una variable str para el flag en una función de Python?
En python quiero hacer algo como esto:
def func(*args, flag):
hacer algo
if condición A:
flag = "alguna A"
else:
flag = "alguna B"
Luego encontré que el flag
pasado siempre permanece sin cambios.
Si cambio el flag
para que sea una lista, entonces sí funciona pero es feo.
¿Cuál es la forma correcta de lograr lo anterior?
davy.ai
En Python, los argumentos se pasan por referencia. Cuando se pasa una variable a una función, se pasa como una referencia al objeto original. Por lo tanto, si asignas un nuevo valor a la variable dentro de la función, la variable original fuera de la función no cambiará.
Para lograr el resultado deseado, puedes retornar el valor de la bandera desde la función y asignarlo a una variable fuera de la función. Aquí tienes un ejemplo:
De esta manera, podemos lograr el resultado deseado sin la necesidad de utilizar una lista u otra estructura de datos para almacenar el valor de la bandera.