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 :

héritage de classe


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut héritage de classe
    salut,

    est ce que on peut faire appel a une méthode de classe, depuis une autre classe sans instancié la première?

    et cette ecriture veut dire quoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     def GetFundMarketMaker(self,account=None):                  
         return self._Controller__dat.GetFundMarketMaker(account)
    récusrsivité???
    merci

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Par défaut
    1-Non, Une classe c'est une description abstraite d'un objet.
    2-Non, c'est pas de la récursivité. Il faudrait poster le code, mais je suppose (vu que le titre parle d'heritage) que c'est de la délégation:

    Un petit exemple de délégation:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    class Caree:
        def __init__(self):
            self.type='Caree'
     
        def DrawMe(self):
            #juste par exemple,
            print self.type
     
    class Hexagone:
        def __init__(self):
            self.type='Hexagone'
     
        def DrawMe(self):
            #On suppose que le contenu des deux DrawMe soit different
            print self.type
     
     
    class MyShapes:
        def __init__(self):
            self.shapes=[Caree(),Hexagone()]
     
        def DrawMe(self):
            for shape in self.shapes:
                shape.DrawMe()
     
    if __name__=='__main__':
        instance=MyShapes()
        instance.DrawMe()
    Je te conseil de lire les bases de l'P-O-O.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Je ne suis pas d'accord avec la réponse à la première question.
    Il ne faut pas confondre méthode d'instance, méthode de classe et méthode statique (les 3 existent en python).
    Une méthode de classe (ou une méthode statique) peut être appelée sans instancier la classe.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class A(object):
        @classmethod
        def f(cls):
            print "hello from", cls.__name__
     
    >>> A.f()
    hello from A
    En outre, en python, une classe n'est pas quelque chose de purement abstrait mais a un existence à l'exécution; c'est un objet comme un autre qui est par défaut du type 'type'.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    salut,
    tu es sur de ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Une méthode de classe (ou une méthode statique) peut être appelée sans instancier la classe.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par moon93
    salut,
    tu es sur de ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Une méthode de classe (ou une méthode statique) peut être appelée sans instancier la classe.
    C'est quand même un peu le principe des méthodes statiques

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    ça marche pas j'ai essayé d'appelé une fonction de classe depuis une autre classe,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OrdersTab_LC.OrdersTabBind.Reset()
    mais j'ai eu le messsage d'erruer suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TypeError: ('unbound method Reset() must be called with OrdersTabBind instance a
    s first argument (got nothing instead)',)

Discussions similaires

  1. conflit d'inclusions et Héritage de classe
    Par gedeon555 dans le forum C++
    Réponses: 7
    Dernier message: 01/10/2006, 19h48
  2. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  3. Héritage de classes.
    Par Berzerk_ dans le forum C++
    Réponses: 48
    Dernier message: 13/08/2006, 23h48
  4. [POO] Héritage vs classe dans une classe
    Par robichou dans le forum Langage
    Réponses: 4
    Dernier message: 06/08/2006, 23h51
  5. [OO] Héritage - Mixins Classes
    Par djmalo dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 01/03/2005, 23h16

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