[Python-es] Transformar una cadena de texto en nombre de constante

Francesc Gispert Sanchez francesc_gispert_11.12 en hotmail.com
Sab Oct 15 20:52:02 CEST 2011


Estimados/as señores/as,

Estoy haciendo una versión sencilla del videojuego Space Invaders con
PyGame para practicar (aún soy muy novato en esto de la programación) y
he hecho un pequeño script que permite crear un documento de texto plano
donde se almacena la configuración de las teclas que se utilizarán para
los controles. 

Pero los nombres de las teclas se almacenan por el nombre que tienen las
constantes en PyGame (por ejemplo, K_RETURN para la tecla 'Enter' o
K_SPACE para la barra espaciadora). Pero a la hora de leer el archivo,
si lo hago con un bucle 'for' del estilo:

parametros = []
for linea in archivo:
    if linea == "":
        break
    parametros.append(linea[:-1])

Los distintos parámetros se almacenan en forma de cadenas de texto (por
ejemplo, parametros = ["K_RETURN", "K_SPACE"] ). Por eso, cuando quiero
comprobar si la tecla que pulsa el jugador concuerda con estas, detecta
que son distintas, porque las constantes de pygame.locals: K_RETURN,
K_SPACE, etc., son en realidad números (creo). Entonces, si asigno la
constante DISPARAR (por ejemplo) a lo que en el archivo de texto es la
cadena "K_RETURN", yo lo que quiero en realidad es que se asigne el
número 125 (me lo acabo de inventar, no sé si es este), el que
corresponde a la constante K_RETURN, a esta constante. ¿Hay alguna forma
más o menos sencilla de conseguirlo?

No sé si me he expresado bien, si es necesario puedo poner trozos de
código de ejemplo. Muchas gracias por vuestra ayuda.


Atentamente,

Francesc Gispert



Más información sobre la lista de distribución Python-es