es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el valor de una variable y no el nombre de la variable cuando se hace referencia a ella como una cadena de texto?

Sé que esta pregunta es extremadamente trivial, pero no he podido encontrar una solución limpia y fácil a mi problema. Me gustaría saber cómo obtener el valor de una variable y no el nombre de la variable cuando la variable se referencia como una cadena:

VARIABLES = ['T1', 'T2']
T1 = "&AB="
T2 = "&PD="

print(VARIABLES[0])
T1

Dónde realmente quiero que imprima “&AB=”.

Sé que en el caso anterior, la solución fácil sería tener la lista VARIABLES definida como [T1, T2], pero eso no es una solución válida para mi problema específico, ya que el ejemplo real de trabajo es más complejo.

He intentado soluciones con declaraciones global(), pero se complican rápidamente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para obtener el valor de una variable en lugar del nombre de la variable cuando esta se refiere como una cadena de texto es utilizar la función incorporada eval() en Python. Así es como se puede hacer:

    VARIABLES = ['T1', 'T2']
    T1 = "&AB="
    T2 = "&PD="
    
    print(eval(VARIABLES[0]))
    # Salida: "&AB="
    

    La función eval() toma como argumento una cadena de texto y la evalúa como una expresión de Python. En este caso, pasamos la cadena de texto VARIABLES[0], que es "T1". La función eval() luego busca la variable con el nombre "T1" y devuelve su valor, que es "&AB=".

    Sin embargo, es importante tener en cuenta que utilizar eval() puede ser arriesgado si la cadena de texto de entrada no es confiable, ya que permite la ejecución de código arbitrario. Una alternativa más segura podría ser utilizar un diccionario para almacenar los nombres de las variables y sus valores, y luego acceder a los valores utilizando las claves del diccionario:

    VARIABLES = ['T1', 'T2']
    var_dict = {'T1': "&AB=", 'T2': "&PD="}
    
    print(var_dict[VARIABLES[0]])
    # Salida: "&AB="
    

    En este caso, creamos un diccionario var_dict que asigna los nombres de las variables a sus valores. Luego, podemos acceder a los valores utilizando la clave VARIABLES[0], que es "T1". El método del diccionario generalmente se considera más seguro que eval(), especialmente si la entrada no es confiable.

Comments are closed.