import dynamique

import dynamique - Python - Programmation

Marsh Posté le 20-08-2004 à 16:45:53    

salut, je voudrais faire un import dynamique. Je voudrais importer une classe que je ne connais pas a l'avance :
 
import "A.B.C.D"
obj = A.B.C.D.Myclass()
 
J'ai tout essaye
__import__(...,globals(),locals(),[]) : marche pas
 
Tous les imports que j'ai fais ne fonctionne pas, python me dit qu'il ne connait pas A quand je fais "obj = A.B.C.D.Myclass()"
 
je suis perdu
Merci de votre aide

Reply

Marsh Posté le 20-08-2004 à 16:45:53   

Reply

Marsh Posté le 20-08-2004 à 16:52:31    

avec eval ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-08-2004 à 16:55:55    

import fichier.py, faut pas utiliser de ""


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 20-08-2004 à 16:58:27    

import pouet suffit normalement

Reply

Marsh Posté le 20-08-2004 à 17:02:53    

black_lord a écrit :

import pouet suffit normalement


ouip mais parfois c'est plus simple avec .py
 
enfin bon ca aide pas le posteur :whistle:  
 
j'ai trouvé :sol:  
toutes les modules dynamiques dans un module global (un répertoire) et t'y vas a coup de getattr :whistle:


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 20-08-2004 à 17:04:00    

Apres import il faut le nom de la classe, comme :
 
import sys
 
Donc je ne peux pas faire
 
var = "rep.rep2.class"
import var

Reply

Marsh Posté le 20-08-2004 à 17:04:50    

KangOl a écrit :

avec eval ??

:o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-08-2004 à 17:12:11    


 
 
eval("import" + var)
ne fonctionne pas

Reply

Marsh Posté le 20-08-2004 à 17:14:19    

ça marche très bien __import__

Reply

Marsh Posté le 20-08-2004 à 17:18:32    

Taz a écrit :

ça marche très bien __import__


 
 
et bien je fais :
 
__import__("rep1.rep2.rep3.fichier" )
o = rep1.rep2.rep3.fichier.class()
 
il me dit rep1 inconnu

Reply

Marsh Posté le 20-08-2004 à 17:18:32   

Reply

Marsh Posté le 20-08-2004 à 17:29:44    

ben c'est tes fichiers qui sont pas bons

Reply

Marsh Posté le 20-08-2004 à 20:33:13    

Taz a écrit :

ben c'est tes fichiers qui sont pas bons


 
Non c vous qui etes nul  :)  
 
faut faire :
 
mod = __import__(var)
 
puis  
 
obj = mod.MyClass()
 
et voila !
c par grave, faut pas etre mauvais perdant

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed