IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

fonctions inter- classes


Sujet :

Python

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut fonctions inter- classes
    Bonjour,

    Je débute encore en classe et me retrouve devant un gros problème...je n'arrive pas a executer des fonctions qui se trouvent dans d'autres classes.

    J'arrive a executer une classe ou des fonctions, mais seulement en utilisant boss.fonction_a_executer mais qui ne fonctionne que pour une seule classe.

    Voici un morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    class Calcul :
     
    	def piece_jeu (self, x, y, r, coul):
    		self.oval1 = self.can1.create_oval(x-r, x-r, x+r, x+r, fill=coul)
    		move ()
     
    	def move(self):
    		...
     
     
     
    class Panneau (Frame):
    	def __init__(self, boss = None):
    		Frame.__init__(self)
    		self.can1 = Canvas(self, width = c*7, height = c*7, bg = 'white')
    		self.can1.bind("<Button-1>", self.calcul.piece_jeu) #ici ca ne marche pas
    		self.can1.pack(padx =5, pady =5)
     
    		...
    Merci pour votre aide

  2. #2
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    hum et si tu faisait heriter ta classe Panneau de ta classe Calcul pour pouvoir acceder a ses methodes?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    A mon avis tu t'emmelle les pinceaux.
    Une classe est un modèle que tu instancie pour créer un objet typé. Donc quand tu fait
    • tu appelle un objet je suppose qui est calcul et qui est une instance de la classe Calcul
    • tu veut appeller la méthode piece_jeu de calcul.


    Or
    1. calcul n'est pas un attribut de ta classe Panneau donc ca marche pas
    2. piece_jeu de calcul est considéré comme un attribut de l'hypothétique classe calcul et non comme une methode membre. il aurait fallu mettre piece_jeu de calcul(...)

    Je te conseille de bien revoir tes concepts de programmation Objet et du mécanisme de l'héritage.

    Une solution à ton problème serait de créer une instance de ta classe Calcul dans ta classe Panneau, et ensuite travailler sur cette instance.

    si tu veut te rafraichir les idée sur la question: http://fr.wikipedia.org/wiki/Classe_%28informatique%29

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    => à HexChit: Merci beaucoup, c'est exactement ça.
    => à Feeder_Fan: Ben là... Merci bcp pour l'explication, j'ai compris ma faute et j'y voit beaucoup plus clair . (en fait, je code pour le plaisir, donc je n'ai pas de cours spécialisés sur la programmation objet sauf Gérard Swinnen qui est une bonne référence pour débutant).

    Merci encore

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    là je pense qu'il y a un autre problem aussi, l'utilisation de bind("<...>", fonction_X) nous oblige d'ajouter le parametre "event" lors de la definition de "fonction_X" ce qui est indiponsable pour passage des propriétés

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    Oui, merci beaucoup, mais j'avais essayé de simplifier mon code d'exemple donc ce n'est pas la fonction appellée réellement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel de Fonction entre classes
    Par likenoother dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2006, 14h37
  2. [C#]Fonction ou classe ?
    Par pierre1256 dans le forum C#
    Réponses: 3
    Dernier message: 30/05/2006, 13h53
  3. fonctions et classes... quand les utiliser ?
    Par fastmanu dans le forum Langage
    Réponses: 6
    Dernier message: 03/04/2006, 00h39
  4. Accèss à des fonctions entre classes
    Par vincetrader dans le forum C++
    Réponses: 4
    Dernier message: 08/09/2005, 13h45
  5. fonction et classe tempalte
    Par narkhor dans le forum C++
    Réponses: 8
    Dernier message: 29/03/2005, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo