Récupérer plusieurs fois le retour d'un input(python)
Résolu
damndamn
Messages postés
6
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
Je me demandais comment récupérer le retour d'un input pour s'en servir plusieurs fois dans d'autres fonctions(et donc que l'on est qu'une seule fois besoin de taper l'input). Dans mon exemple ici, cela marche :
'test1' et 'test2' on bien le même retour, mais le problème c'est que j'ai besoin que 'name' soit dans une fonction ou une classe, et que le fonctionnement reste le même, à savoir appeler une seule fois l'input, et le récupérer pour plusieurs fonctions.
Savez vous comment faire ça, s'il vous plait ?
Je me demandais comment récupérer le retour d'un input pour s'en servir plusieurs fois dans d'autres fonctions(et donc que l'on est qu'une seule fois besoin de taper l'input). Dans mon exemple ici, cela marche :
class ClassTest: def __init__(self, input_test=""): self.input_test = input_test def __str__(self): return self.input_test def test1(u): print(f"{u} test1") def test2(o): print(f"{o} test2") name = ClassTest(input("?")) test1(name) test2(name)
'test1' et 'test2' on bien le même retour, mais le problème c'est que j'ai besoin que 'name' soit dans une fonction ou une classe, et que le fonctionnement reste le même, à savoir appeler une seule fois l'input, et le récupérer pour plusieurs fonctions.
Savez vous comment faire ça, s'il vous plait ?
A voir également:
- Récupérer plusieurs fois le retour d'un input(python)
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
- Citizen code python - Accueil - Outils
7 réponses
Bonjour,
en fait mon programme contient plusieurs modules, le retour de l'input sert à donner un nom à un fichier(json) que je crée, et il doit aussi pouvoir être écrit dedans, en tant qu'information. Donc dans les différents modules, j'ai plusieurs fonctions qui doivent pouvoir se servir de ce return, que ce soit, pour le nom de création du fichier, l'écriture de ce nom dans le fichier, et donc aussi le chemin d'écriture.
en fait mon programme contient plusieurs modules, le retour de l'input sert à donner un nom à un fichier(json) que je crée, et il doit aussi pouvoir être écrit dedans, en tant qu'information. Donc dans les différents modules, j'ai plusieurs fonctions qui doivent pouvoir se servir de ce return, que ce soit, pour le nom de création du fichier, l'écriture de ce nom dans le fichier, et donc aussi le chemin d'écriture.
peut-être ainsi?
class ClassTest: Init = False def __init__(self): if not ClassTest.Init: ClassTest.input_test=input("?") ClassTest.Init=True def __str__(self): return ClassTest.input_test def test1(u): print(f"{u} test1") def test2(o): print(f"{o} test2") test1(ClassTest()) test2(ClassTest())
ou bien:
class ClassTest: dico={} def __init__(self,q="?"): if not q in ClassTest.dico: r=input(q +"?") ClassTest.dico[q]=r else: r=ClassTest.dico[q] self.r=r def __str__(self): return self.r def test1(u): print(f"{u} test1") def test2(o): print(f"{o} test2") test1(ClassTest("y")) test2(ClassTest("g")) test2(ClassTest("y")) test1(ClassTest("g"))
Merci, oui ça marche sur un module, mais à partir du moment ou j'appelle plusieurs modules(a l'import), il lance automatiquement l'input, avant tout autre code...
Il faut se servir du 'if __name__ == __main:', pour éviter ça, c'est ça ?
Il faut se servir du 'if __name__ == __main:', pour éviter ça, c'est ça ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non, mais je peux le faire.
Ca serait plus facile à gérer ?
Ton deuxième test marche aussi, mais c'est pareil, à l'import sur un autre module, il va d'abord lancer l'input avant le code qu'il devrait lancer en premier, normalement.
Ca serait plus facile à gérer ?
Ton deuxième test marche aussi, mais c'est pareil, à l'import sur un autre module, il va d'abord lancer l'input avant le code qu'il devrait lancer en premier, normalement.
Pour que cela fonctionne, tu ne peux avoir qu'une seul déclaration de ClassTest.
Tu ne peux donc pas la copier dans plusieurs modules.
Je suppose que tu fais tout cela parce que tu ne sais pas où se fera la première utilisation du nom de fichier, et que tu ne sais donc pas où poser la question du nom de fichier? Pourquoi ne pas la poser au début, quand le programme démarre?
Tu ne peux donc pas la copier dans plusieurs modules.
Je suppose que tu fais tout cela parce que tu ne sais pas où se fera la première utilisation du nom de fichier, et que tu ne sais donc pas où poser la question du nom de fichier? Pourquoi ne pas la poser au début, quand le programme démarre?