Estoy creando un entorno tipo concha. Mi método original de manejar la entrada del usuario era usar un comando de mapeo del diccionario (cadenas) para métodos de varias clases, haciendo uso del hecho de que las funciones son objetos de primera clase en python.¿Es una mala práctica usar getattr de python extensivamente?
Por razones de flexibilidad (sobre todo para los comandos de análisis), estoy pensando en cambiar mi configuración de modo que estoy usando getattr (comando), para tomar el método que necesito y luego pasarle argumentos al final de mi analizador Otra ventaja de este enfoque es no tener que actualizar mi diccionario de comandos (actualmente implementado estáticamente) cada vez que agrego un nuevo método/comando.
Mi pregunta es doble. En primer lugar, ¿getattr tiene los mismos problemas que eval? En segundo lugar, ¿estaré afectando la eficiencia de mi caparazón? ¿Importa cuántos métodos/comandos tengo? Actualmente estoy viendo 30 comandos, que podrían duplicarse.
si no has mirado pyparsing http://pyparsing.wikispaces.com/ realmente deberías, hay __NO__ razón real para escribir tu propio analizador en python para cualquier cosa. –
Fuzzy, estoy bastante seguro de que puedo pensar en uno, y es para lo que lo estoy haciendo: propósitos de aprendizaje. Antes de comenzar este proyecto actual, no entendía las implicaciones de las funciones como objetos de primera clase. Aunque aprecio la referencia. Lo miraré. – Wilduck