Quand je lance l'exemple suivant:dynamique Module champ de chargement en Python
def a():
exec('import math')
b()
def b():
print math.cos(90)
a()
Je reçois l'erreur suivante: NameError: nom global « mathématiques » est pas défini
Ce que je suis en train faire est de charger dynamiquement certains modules à l'intérieur de la fonction a() et les utiliser dans la fonction b()
Je veux que ce soit aussi transparent que possible pour le point de vi de b() ew. Cela signifie que je ne veux pas charger le module avec _ _ import _ _ dans a() et passer une référence à la fonction b(), en fait il est obligatoire que la signature de la fonction b() reste juste cette : b()
est-il un moyen de le faire les gars? merci!
Pourquoi ne pas simplement 'math' d'importation en haut du fichier qui contient' b() '? – bgporter
Hmm ... Je ne demande pas "Pourquoi?". Peut-être 'globals() ['math'] = __import __ (" math ")'? Regarde moche :) – khachik
parce que je ne sais pas à l'avance que je veux utiliser le module de mathématiques. "math" est juste en exemple ici. Je veux charger n'importe quel module pendant l'exécution à partir de la fonction a() – Alexandros