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 :

Python POO : question sur la structuration d'un programme en programmation orientée objet en python


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut Python POO : question sur la structuration d'un programme en programmation orientée objet en python
    Bonjour,

    Je débute dans la POO et je voudrais éclaircir un point.
    Je comprend bien le principe de l'héritage et celui des classes d'objet. Cependant un doute persiste dans la structuration.

    J'ai tenté de représenter ma question à travers un exemple simple.

    Par exemple si je veux créer une classe Maison.
    Dan cette classe Maison, je définis les méthodes suivantes :
    ouvrir porte
    fermer fenêtre
    mettre la table
    ...

    Toutes ces méthodes sont du même type, elles consistent à utiliser la maison. Jusque là pas de problème.

    Maintenant je veux créer toute une liste de méthodes qui concernent l'entretien de la maison :
    nettoyer_vitres
    nettoyer_sols
    laver_vaisselle
    ...

    Ces méthodes sont d'un type différent, elles concernent l'entretien et pas l'utilisation.
    Donc je souhaiterais que les méthodes de type entretien puissent être séparées de celles de l'utilisation.
    Le but est que quand je vais créer un objet domicile de classe Maison je puisse y rajouter les méthodes d'entretien si je le souhaite, ou ne pas les rajouter si pas besoin.

    Si un jour je veux rajouter des nouvelles méthodes d'un type nouveau, je voudrais que cela puisse être rajouté de la même façon que les méthodes d'entretien.

    Je vous remercie par avance de vos avis.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par thorgal99 Voir le message
    Je débute dans la POO et je voudrais éclaircir un point.
    ...
    Je vous remercie par avance de vos avis.
    Pour la POO, la bonne rubrique est ALM car c'est un style de programmation indépendant du langage i.e. la relation entre un objet Maison et les opérations d'entretien et d'utilisation peut se traduire de différentes façons, l'héritage n'étant pas forcement le mieux... et çà n'a rien à voir avec le langage mais avec la "modélisation"/conception de votre problème.

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

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Une facon de faire, qui n'est bien sûr pas la seule et pas forcément la meilleure selon ce que vous voulez faire de la classe Maison ensuite et selon ce qu'elle contiendra.

    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 Maison(): 
      class Utiliser():
          def __init__(self, porte_ouverte=True):
              self.porte_ouverte = porte_ouverte
     
      class Nettoyer():
          def __init__(self, vaisselle_propre=False):
              self.vaisselle_propre=vaisselle_propre
     
          def vaisselle(self):
              self.vaisselle_propre = True
     
      def __init__(self, porte_ouverte=True, vaisselle_propre=False):
          self.utilisation = self.Utiliser(porte_ouverte)
          self.nettoyage = self.Nettoyer(vaisselle_propre)
     
    m = Maison()
    print(m.nettoyage.vaisselle_propre)
    m.nettoyage.vaisselle()
    print(m.nettoyage.vaisselle_propre)

Discussions similaires

  1. [PHP 5.0] [POO] Question sur ma structure de classes
    Par kro001 dans le forum Langage
    Réponses: 1
    Dernier message: 07/10/2009, 17h17
  2. [POO] Question sur le destructeur
    Par poukill dans le forum C++
    Réponses: 19
    Dernier message: 26/02/2007, 13h01
  3. Petite question sur les structures
    Par progfou dans le forum C
    Réponses: 5
    Dernier message: 21/06/2006, 15h49
  4. [POO] question sur les interfaces
    Par root76 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/05/2006, 17h12
  5. [POO]Question sur les constructeurs
    Par Burinho dans le forum Langage
    Réponses: 16
    Dernier message: 08/04/2006, 21h56

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