Rechercher : dans
Par :

[Python] Appel de fonction ds 1 autre fichier

Dernière réponse le 17 avr 2008 à 09:59:05 oreilledelest, le 18 avr 2006 à 11:14:20 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [Python] Appel de fonction ds 1 autre fichier » dans :
[Gravure] Graver ou lire un fichier .BIN / .CUE VoirLes fichiers .bin et .cue sont respectivement : .BIN : une image de CD, c'est-à-dire une copie binaire d'un CD ou d'un DVD sous forme d'un fichier .CUE : informations sur les pistes du disque. Les fichiers .BIN / .CUE sont utilisables par...
Animal crossing - Solutions et codes VoirAfin de vous aider dans vos recherches de solutions dans ce jeu vidéo, voilà l'adresse de quelques sites web. Nintendo DS WII Nintendo DS http://www.jeuxvideo.com/... http://www.gameworld.fr/235-ds-Animal-crossing-Wild-world...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
VBScript - Les fonctions et les procédures VoirLa notion de procédure On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction (ou procédure)...

1

sebsauvage, le 18 avr 2006 à 13:36:10

import Recup_data
monobjet = Recup_data.Read_file()
monobjet.Reader_header()

Répondre à sebsauvage

2

oreilledelest, le 18 avr 2006 à 14:10:44

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?

Répondre à oreilledelest

3

sebsauvage, le 18 avr 2006 à 14:16:00

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.

Répondre à sebsauvage

4

oreilledelest, le 18 avr 2006 à 14:36:08

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?

Répondre à oreilledelest

5

oreilledelest, le 18 avr 2006 à 14:40:33

Non autant pour moi
J'ai réussi
Merci encore

Répondre à oreilledelest

6

 frites.saucisse, le 17 avr 2008 à 09:59:05

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.

Répondre à frites.saucisse