Lancement fonctions dont le nom est en variable dans une classe....
Lancement fonctions dont le nom est en variable dans une classe.... - Python - Programmation
MarshPosté le 08-11-2015 à 19:35:33
Bonjour à tous, Le titre n'est pas clair et pourtant je suis sur que la solution est toute bete... je vous soumet mon soucis en python : J'ai ce code que j'ai pondu pour gerer mon encodeur rotatif avec un rasp.
Le principe est simple, ma classe encodeur prend en paramètres les pins, et deux variables contenant le noms des fonctions du programme principale a exécuter si y'a rotation ou click.
Comme cela, cela fonctionne. Par contre, si je met ma classe dans un fichier et que je l'importe, ca merde en me sortant : une keyerror sur les globals()[self.funcsw]() etglobals()[self.funcrotate]()
Ce qui me parait assez logique, sauf que je vois pas par quoi remplacer
J'aurais pu faire en sorte que les interruptions ne soient pas geres dans la classe ce qui m'aurait éviter ce problème en n'ayant au final que deux méthodes dans ma classe pour savoir le sens de rotation et le click en appelant ces méthodes dans le callback... Mais je veux que ce soit ma classe qui le gere, et je suppose qu'il doit pas manquer grand chose...
Marsh Posté le 08-11-2015 à 19:35:33
Bonjour à tous,
Le titre n'est pas clair et pourtant je suis sur que la solution est toute bete...
je vous soumet mon soucis en python :
J'ai ce code que j'ai pondu pour gerer mon encodeur rotatif avec un rasp.
Le principe est simple, ma classe encodeur prend en paramètres les pins, et deux variables contenant le noms des fonctions du programme principale a exécuter si y'a rotation ou click.
Je vous passe le code, vous allez voir.
Comme cela, cela fonctionne.
Par contre, si je met ma classe dans un fichier et que je l'importe, ca merde en me sortant :
une keyerror sur les globals()[self.funcsw]() etglobals()[self.funcrotate]()
Ce qui me parait assez logique, sauf que je vois pas par quoi remplacer
J'aurais pu faire en sorte que les interruptions ne soient pas geres dans la classe ce qui m'aurait éviter ce problème en n'ayant au final que deux méthodes dans ma classe pour savoir le sens de rotation et le click en appelant ces méthodes dans le callback...
Mais je veux que ce soit ma classe qui le gere, et je suppose qu'il doit pas manquer grand chose...