Restriction d'execution de code
Bonsoir tout le monde et joyeuse année 2009, avec plein de bonheur et de sureté ....:roll:
J'ai une question à laquelle je n'ai pue avoir de réponse jusque là.
Je développe une application en Java, et pour avoir un système de plugins j'y embarque JYthon (www.jython.org). Maintenant, je pose la question dans le thread Python car si j'ai une réponse ici je trouverai sûrement pour JYthon.
Comme vous devriez déjà le savoir, un plugin a par définition deux fonctions principales qui sont exécutées par le plugins loader:
Par exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
def plugin_init():
# Initialisation du plugin
def plugin_clean():
# destruction du pluhgin
#d'autre fonctions appelées dans les deux fonctions au dessus
def another_one():
#....
#...etc |
Maintenant la question est: Si on met du code en dehors d'une déclaration de fonctions genre tout à la fin, eh ben ce code sera exécuté au chargement ce qui, à mon sens, viol le concept de module, c'est comme si on avait une classe avec des initialisations statiques.
Est-ce qu'en python, il existe une "magouille" (si j'ose dire) qui permet de restreindre l'exécution de code de telle sorte qu'on puisse uniquement "charger" le script (donc construire la table des références) sans pour autant exécuter au sens propre le code qui s'y trouve ?
Merci