Posez votre question Signaler

[Python] Appel de fonction ds 1 autre fichier [Résolu]

oreilledelest 500Messages postés 18 mai 2005Date d'inscription - Dernière réponse le 28 oct. 2011 à 12:22
Bonjour
Désolé pour le titre en abrégé, mais je n'avais pas assez de place pour tout écrire.
Voilà mon problème.
J'ai écrit plusieurs fichiers en python, qui contiennent tous du code, et je voudrais pouvoir importer ce que j'ai écrit comme des modules.
Je m'explique : j'ai un fichier "main.my" que je lance avec python, et ce fichier main fait appel à un autre fichier contenu dans le même dossier que lui. Ce deuxième fichier se nomme 'Recup_data.py', sa classe s'appelle 'Read_file' et la fonction à utiliser 'Read_header'.
Je voudrais savoir quelle est la procédure à suivre pour effectuer ce genre de manipulation car j'ai ce genre d'erreur :
"TypeError: unbound method Read_header() must be called with Read_file instance as first argument (got str instance instead)".
Merci à tous
Lire la suite 

[Python] Appel de fonction ds 1 autre fichier »

7 réponses
Réponse
+2
moins plus
import Recup_data
monobjet = Recup_data.Read_file()
monobjet.Reader_header()
oreilledelest- 18 avril 2006 à 14:10
OK, merci
Mais à partir de ça, est-ce que je pourrais utiliser des variables relatives à ma fonction appelante dans ma fonction appelée?
Par exemple, dans la fonction appelante, j'ai une variable "filename", que j'ai initialisée dans la partie __init__. Je voudrais la réutiliser dans ma fonction appelée, par exemple en faisant print self.filename.
C'est possible?
Pavel - 28 oct. 2011 à 12:22
oui mais il faut faire un return (ta variable) a la fin de ta fonction
Ajouter un commentaire
Réponse
+2
moins plus
Mais à partir de ça, est-ce que je pourrais utiliser des variables relatives à ma fonction appelante dans ma fonction appelée?

Du moment que ce sont des membre de la classe, pas de problème.

La propriété sera en effet accessible par monobjet.filename, sans problème.
oreilledelest- 18 avril 2006 à 14:36
Je ne comprends pas car dans un cas, je fais simplement (dans le fichier Recup_data.py)
import Menu_plot
Et ensuite, dans une fonction de la classe de ce fichier, j'ai écrit :
Menu_plot.My_plot.Choose_param_to_print(self)
Et une fois que je suis dans la fonction Choose_param_to_print de la classe My_plot du fichier Menu_plot, je peux directement faire
print self.objet
Alors qu'objet est créé dans le fichier Recup_data.
C'est moins compliqué que ce que tu me dis.
Pourquoi quand j applique ça partout ça ne marche pas?
Ajouter un commentaire
Réponse
+0
moins plus
Non autant pour moi
J'ai réussi
Merci encore
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Je ressort cette ancienne discussion... avec la question supplémentaire:

Comment faire si le fichier Recup_data.py n'est pas dans le même répertoire que main.my?

Je connais déjà l'ajout (si Recup_data est dans le répertoire source):
from source.Recup_data import *

J'ai essayé sans succès
monobjet = source.Recup_data.Read_file()
monobjet.Reader_header()

Merci pour votre aide.
Ajouter un commentaire
Ce document intitulé « [Python] Appel de fonction ds 1 autre fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?