Importer des programmes puis les appeler à l'aide d'un input

Résolu/Fermé
Utilisateur anonyme - 7 juil. 2014 à 20:26
 Utilisateur anonyme - 9 juil. 2014 à 11:21
Bonjour,

J'aimerais créer plusieurs fichiers de programme en Python qui sont propres à chacun des personnages concernés (il s'agit de champions de LoL). Par exemple, j'ai créé un programme darius.py et j'aimerais dans un programme de mise en commun (le programme principal), demander à l'utilisateur un personnage puis que le programme travaille sur le fichier de programme associé. Par exemple, l'utilisateur entre "darius" et le programme exécute son algo à partir des données du fichier concerné.

J'ai essayé la chose suivante : j'ai créé une fonction qui prend comme paramètre le nom du personnage puis qui exécute un bout de programme du fichier concerné. Le problème c'est que le paramètre de la fonction doit être un str (car sinon, le nom n'est pas défini) et que pour appeler une fonction du fichier concerné, il faut faire :
1°) si l'import est : import [nom], alors il faut faire : [nom].fonction(paramètres)
2°) si l'import est : from [nom] import *, alors il faut faire : fonction(paramètres)

La seconde solution paraît plus simple mais le problème c'est que tous les fichiers possèdent le même genre de fonction avec un algo' différent donc il faut les nommer différemment pour pouvoir les appeler de manière unique. Pour cela, j'ai choisi d'ajouter _[nom] à la fin de chacun des fonctions mais cela revient au même problème ...

Le paramètre ne peut pas être convertis en [nom].fonction(paramètres) ou fonction_[nom](paramètres).

Avez-vous une proposition à faire ?

Répondez-moi rapidement pour pas que je perde espoir trop tôt ...

A voir également:

4 réponses

http://stackoverflow.com/questions/3781851/run-a-python-script-from-another-python-script-passing-in-args

Si j'ai bien compris ton besoin.
0
Utilisateur anonyme
8 juil. 2014 à 11:53
Non, je ne pense pas que ce soit ce que je recherche car cela m'amène à exécuter le fichier mais cela me permet-il d'accéder aux fonctions du fichier ?
0
Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
8 juil. 2014 à 15:45
Un truc du genre
exec("import "+nomDuPersonnage)
?
C'est pas très propre mais bon.
0
Utilisateur anonyme
9 juil. 2014 à 10:34
Le problème d'importer les fichiers peut être réglé facilement en les important tous au début. Le problème est d'exécuter une fonction à l'intérieur de ces fichiers mais dont le choix du fichier est donné par l'utilisateur. Il faut donc convertir un string en une commande. La commande exec semble bien le faire mais lorsque je fais : print(exec(nompersonnage+".initialisation(paramètres)"), il m'affiche : "None" à la place d'une liste. initialisation(paramètres) est une fonction d'un fichier externe (importé au préalable sous la forme : import nomdupersonnage)
0
Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
8 juil. 2014 à 15:47
C'est quel genre d'algo ? Tu peux pas faire un modèle classe en POO ?
0
Utilisateur anonyme
9 juil. 2014 à 10:35
C'est un algo qui prend en entrée deux noms de personnage et qui renvoie deux sorties numériques qui correspondent aux DPS respectif des personnages choisis. C'est quoi POO ?
0
Utilisateur anonyme
9 juil. 2014 à 11:21
Bonjour à tous,

J'ai trouvé ma réponse tout seul. De la même manière que exec, eval permet de réaliser la même chose mais il considère le résultat de la commande tandis que exec se focaliser uniquement sur des commandes. Pour plus de renseignement, recherchez dans les documentations de Python ou sur d'autres forums sur Internet.

Mon sujet est résolu car mon programme affiche la bonne chose. Merci à vous !
0