Je crée un environnement de type shell. Ma méthode originale de gestion de l'entrée de l'utilisateur consistait à utiliser des commandes de mappage de dictionnaire (chaînes) pour les méthodes de diverses classes, en utilisant le fait que les fonctions sont des objets de première classe dans python. Par souci de flexibilité (surtout pour les commandes d'analyse syntaxique), je pense à changer ma configuration de telle sorte que j'utilise getattr (commande), pour récupérer la méthode dont j'ai besoin et passer des arguments à la fin de mon analyseur Un autre avantage de cette approche est de ne pas avoir à mettre à jour mon dictionnaire de commandes (actuellement implémenté statiquement) chaque fois que j'ajoute une nouvelle méthode/commande.Est-ce une mauvaise pratique d'utiliser généreusement getattr de python?
Ma question est double. Premièrement, getattr at-il les mêmes problèmes que eval? Deuxièmement, vais-je prendre un coup à l'efficacité de ma coquille? Est-ce que le nombre de méthodes/commandes que j'ai? Je regarde actuellement 30 commandes, qui pourraient éventuellement doubler.
si vous n'avez pas regardé pyparsing http://pyparsing.wikispaces.com/ vous devriez vraiment, il n'y a pas vraiment de raison d'écrire votre propre analyseur en python pour quelque chose. –
Fuzzy, je suis sûr que je peux penser à un, et c'est ce que je fais pour: l'apprentissage. Avant de commencer ce projet en cours, je ne comprenais pas les implications des fonctions étant des objets de première classe. J'apprécie cependant la référence. Je vais regarder dedans. – Wilduck