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 :

probl�me lors de l'appel d'une m�thode d'h�ritage


Sujet :

Python

  1. #1
    Membre confirm�
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    F�vrier 2016
    Messages
    188
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 60
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activit� : Formateur en informatique

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 188
    Par d�faut probl�me lors de l'appel d'une m�thode d'h�ritage
    bonjour,
    l'appel de la m�thodes m�re print (f"{super().aff()}") me renvoie deux choses la bonne valeur suivi de none
    voici le code

    class Vehicule:
    def __init__(self,type):
    self.type=type
    print("le constructeur de v�hicule vient d'�tre invoqu�")

    def aff(self):
    print (f"{self.type}")


    class Voiture(Vehicule):
    def __init__(self,couleur, nbRoues, nbCylindres,type):
    self.couleur=couleur
    self.nbRoues=nbRoues
    self.nbClindres=nbCylindres
    super().__init__(type)
    print ("Le constructeur de voiture vient d'�tre invoqu�")


    def show(self):
    print (f"la voiture est {self.couleur}, elle a {self.nbRoues} roues et {self.nbClindres} cylindres")
    print (f"{super().aff()}")






    class Moteur:
    def __init__(self,nbCy):
    self.nbCy=nbCy
    print("Le constructeur de moteur a �t� invoqu�")




    mote = Moteur(4)
    vehi=Vehicule("renault")
    auto= Voiture("rouge",5,mote.nbCy,vehi.type)
    auto.aff()
    auto.show()



    r�sultat:
    Le constructeur de moteur a �t� invoqu�
    le constructeur de v�hicule vient d'�tre invoqu�
    le constructeur de v�hicule vient d'�tre invoqu�
    Le constructeur de voiture vient d'�tre invoqu�
    renault
    la voiture est rouge, elle a 5 roues et 4 cylindres
    renault
    None
    merci

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 069
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 069
    Par d�faut
    La m�thode aff n'a pas de "return un truc" et donc retourne None par d�faut , donc c'est normal .

  3. #3
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 770
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : Architecte technique retrait�
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 770
    Par d�faut
    Salut,

    Pour compl�ter ce qu'a �crit josmiley, la difficult� pour comprendre ce qu'il se passe ici est d'arriver � retrouver/distinguer les m�canismes simples qui sont en �uvre.

    Si j'�cris:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> def g(): 
    ...     print('g')
    ...
    >>> def f():
    ...     print('f')
    ...     print('g:', g())
    ...
    >>> f()
    f
    g
    g: None
    on voit mieux ce qu'il s'y passe et effectivement d'o� sort le None.

    Mais vu ce que fait la fonction g, on pourrait �crire f ainsi:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def f():
    ...     print('f')
    ...     g()
    ...
    >>> f()
    f
    g
    >>>
    ce qui affiche les m�mes informations.

    Dit autrement, lorsqu'une fonction en appelle une autre, il y a une division du travail (explicite ou pas) entre l'une et l'autre � respecter. Ce qui se complique/g�n�ralise lorsqu'on envisage de d�finir ses objets. Car on se fait pi�ger par les tutos de base qui ne montrent que ce qui est sp�cifique au langage (cr�er des class et h�ritage): les relations entre objets sont tout le sujet de la POO et c'est ind�pendant du langage. Pire: on y apprend que l'h�ritage est une relation � �viter...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 848
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 848
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par jmc41320 Voir le message
    l'appel de la m�thodes m�re print (f"{super().aff()}") me renvoie deux choses la bonne valeur suivi de none
    Il ne faut pas confondre "ce que renvoie une fonction" et "ce qu'affiche une fonction". Un "formateur" informatique est cens� le savoir (c'est un peu une des bases de l'algo)...
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Cr�er un tableau lors de l'appel d'une fonction
    Par MiJack dans le forum Langage
    R�ponses: 11
    Dernier message: 01/02/2006, 11h18
  2. R�ponses: 2
    Dernier message: 09/01/2006, 09h38
  3. R�ponses: 5
    Dernier message: 06/01/2006, 11h41
  4. [POO] Probl�me lors de l'appel d'une propri�t� d'un objet.
    Par akecoocoo dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 24/08/2005, 08h51
  5. [Language]problème lors de l'appel d'une méthode
    Par Samanta dans le forum Langage
    R�ponses: 6
    Dernier message: 18/05/2005, 13h03

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